【发布时间】:2011-09-25 13:19:29
【问题描述】:
我正在学习 Objective-C,但我并不真正理解实例和对象之间的区别。他们通常使用这两个术语。还有,为什么alloc方法应用于类而init方法应用于对象?
【问题讨论】:
标签: objective-c oop object programming-languages instance
我正在学习 Objective-C,但我并不真正理解实例和对象之间的区别。他们通常使用这两个术语。还有,为什么alloc方法应用于类而init方法应用于对象?
【问题讨论】:
标签: objective-c oop object programming-languages instance
实例与对象相同,因此使用这两个术语并且可以互换使用 - NSString 的实例或 NSString 对象的实例。
+alloc 是一个类方法,负责分配存储新实例/对象所需的内存,并将该内存清零。它返回一个新创建的实例/对象。
-init 负责进一步初始化这个新实例;1 例如,为实例变量分配默认值。由于-init对现有实例进行操作,所以它是一个实例方法。
1在某些情况下,-init 可能会返回一个与+alloc 创建的实例不同的实例。
【讨论】: