Tuesday, August 13, 2019

macOS 无法启动(持续闪烁的带问号的文件夹)的问题.

前由:今天电脑掀开屏幕,发现没亮, 重新开机,发现只有个带问号文件夹图标在闪. 重启几次又正常进入系统了. 后来合盖又重复出现问题.
rmbp 版本信息:


症状:Option+power进入启动管理器, 发现内置 SSD 时有时没有, 估计找不到硬盘,所以报错无法进入系统.

尝试的处理方法(无效)(Mac 的启动组合键 https://support.apple.com/zh-cn/HT201255):
1. D+power 进入 Apple Hardware Test,检测结果正常
2. Command+r 进入恢复系统, Disk Utility 中找不到 SSD
3. Command+s 进入单用户模式,执行 fsck -fy 无法修复
4. 如何重置 Mac 上的系统管理控制器 (SMC): https://support.apple.com/zh-cn/HT201295
5. 重置 Mac 上的 NVRAM 或 PRAM: https://support.apple.com/zh-cn/HT204063
6. 使用DriveDx检测 SSD, 正常:

7. 使用 Disk Utility, First Aid 检测有错误(是否会导致启动管理器中找不到硬盘?),且无法修复:

8. 已重新安装操作系统(无效)
8-1 Time Machine 备份
8-2 重装操作系统: 如何创建可引导的 macOS 安装器 https://support.apple.com/zh-cn/HT201372
8-3 重装系统(Disk Utility,First Aid检测已无错误.
9. 安装了macOS Sierra 10.12.6后,测试了两天,正常.
10. 使用 Time Machine 恢复macOS High Sierra 10.13.6,彻底找不到硬盘了(每次都是?号文件夹)

原因分析:
1. SSD 坏了 --- 上面第10步后彻底坏了(两个Macbook 调换配件测试验证,但之前在 Apple Store检测是正常的-_-)
2. 操作系统坏了(已重装,无效,操作系统正常)
3. SSD 排线(不知道是否存在), 主板坏了. --- 无排线, 主板正常

下一步进行中:
x. Apple Store送修
x. 更换硬盘-参考周星星: https://www.hi-pda.com/forum/viewthread.php?tid=2348895

总结:
1. 前几天刚换了电池 -_-, 1475
2. 更换 SSD, Intel 760p, 转接口, 1099+20
------------------------------------更换 SSD 后测试休眠------------------------------------
macOS High Sierra 10.13.6
standby 1(默认值)时会休眠无法启动, 修改为0后启动正常.
macOS Mojave version:10.14 Beta (18A377a) --- pmset 添加了一些参数,例如:Standby Battery Threshold 50
standby 1(默认值)休眠启动正常, 目前所有的设置都是默认值.

Tuesday, May 18, 2004

mastering delphi 7

p38 OOP基于三个基本概念:封装(通过类实现),继承,多态(滞后绑定)
p39 类和对象 一个对象是类的一个实例,或由类定义的数据类型的一个变量.
对象是真正的实体.对象和类之间的关系与变量和类之间的关系是相同的.
p40 使用try/finally块,以保证万一代码中出现异常时能够析构对象.
p41 支持overloading方法,同名的方法,不同的参数.
方法可以有一个或多个默认值的参数.
在一个方法中,可以使用self关键字访问当前对象.
p42 在请求当前对象时,引用类的一个特殊实例是不好的oop行为.
p44 属性可以直接与数据数据以及访问对象的方法对应起来,用于读写数值.
属性就是虚拟字段.
p46 封装的一个关键思想就是减少程序所使用的全局变量的数目.
信息隐含指的就是封装改变.
p49 delphi的对象引用模型 ??????
p50 赋值对象,assign ??????
p52 调用Free来解除对象,而不要调用Destroy析构器.
使用FreeAndNil,或调用Free后将对象引用设为nil,除非引用超出了范围.
p56 多态性的基本思想是,用户调用一个对象方法,并将其应用于一个变量,->
但delphi具体调用哪个方法将依赖与变量相关的对象类型. ??????
多态性的优势是能够编写简单的代码,对待完全不同的对象类型,->
但前题是它们是相同的并可取得正确的运行时行为. ??????
p57 覆盖一个虚拟方法,必须指定相同的参数并使用关键字override.
要重定义一个静态对象方法,只需向子类添加该对象方法,->
它的参数可以与原来方法的参数相同或不同
p60 基类含有抽象(abstract)方法,那么每个子类都能重定义它,->
每个继承类必须重新定义它.
p61 类型的安全转换:RTTI操作符is,as 通用的数据类型(TObject).
p62 接口类型对象是引用计数的,一个类继承自一个类,但可以实现多个接口.
p69 类引用的作用:允许用户在运行时处理类数据类型.
p80 银行家舍入法:是舍是入取决于这个数是偶数还是奇数。奇数进入.
p81 探测法(soundex)是一个索引系统,会将名称翻译成一个四个字符的代码,->
由一个字母与三个数值组成.详见:www.nara.gov/genealogy/coding.html.
p93 TObject类型的变量或参数只能应用于由TObject定义的方法和属性.
p97 VCL(visual components library),--->
CLX(component library for x-platform or cross platform)
vcl:TObject-TPersistent-TComponent(组件)-TControl(控件) or 非可视组件
clx:BaseCLX(核心类库),VisualCLX(控件),DataCLX(dbExpress引擎前端),NetCLX.
p101 类初始化部分的字段和对象方法都是公布的(published),-->
当组件类的一个元素前没有添加特殊的关键字时,published是默认的关键字.
赋给任何事件的对象方法都应该是公布的对象方法.
p110 delphi组件是使用"PME"即propery,method,event进行编程的.
p111 组件依赖于它的owner,即form来处理它的事件,这项技术叫授权(delegation).
delphi中的事件是基于方法指针的..
p119 容器与列表不是类型安全的,解决方法有两种
1.从列表类派生新类并定制Add对象方法和访问对象方法(与Items属性有关)
2.建立一个包含一个TList对象的全新类,使用类型检查将新类的对象方法和内部列表对应起来.