为什么有些对象在 objective-c 中使用前不需要初始化?
例如,为什么 NSDate *today = [NSDate date];
合法?
最佳答案
它们在date
方法中初始化。这是在 Objective-C 中创建自动释放对象的常用方法。这种形式的分配器称为便利分配器。
要了解更多相关信息,请阅读 Apple 的 Cocoa 核心能力文档中关于对象创建的“工厂方法”段落:http://developer.apple.com/library/mac/#documentation/General/Conceptual/DevPedia-CocoaCore/ObjectCreation.html
要为您自己的类创建方便的分配器,请实现一个类方法,以您的类命名(不带前缀)。例如:
@implementation MYThing
...
+ (id)thing
{
return [[[MYThing alloc] init] autorelease];
}
...
@end
关于objective-c - 为什么有些对象在 objective-c 中使用前不需要初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992370/