深入理解对象初始化
1. 对象创建方式
在编程中,创建新对象通常有两种方式:
- [SomeClass new]
- [[SomeClass alloc] init]
这两种方式本质上是等效的,但在Cocoa编程中,更常用的是 alloc 和 init 的组合。 new 通常作为初学者的过渡方式,当你对 alloc 和 init 有了足够的了解后,就应该使用后者。
2. 对象分配
对象分配是新对象诞生的过程。当向一个类发送 alloc 消息时,该类会从操作系统获取一块足够大的内存,用于存储对象的实例变量。同时, alloc 会将这块内存初始化为0,避免了未初始化内存可能导致的各种随机错误。
不过,新分配的对象不能立即使用,还需要进行初始化。与C++和Java不同,Objective - C将对象分配和初始化分为两个明确的阶段。初学者常见的错误是只使用 alloc 操作,例如:
Car *car = [Car alloc];
这样可能会在后续使用中出现奇怪的行为(即“bug”)。
3. 对象初始化
初始化是分配的对应操作,它将一块内存准备好,使其成为一个可用的对象。
超级会员免费看
订阅专栏 解锁全文
1391

被折叠的 条评论
为什么被折叠?



