【发布时间】:2012-07-09 00:41:05
【问题描述】:
所以我有很多自定义对象,其中可能包含大量数据,或者根据用户输入的数据非常少。如果只需要一点点,我显然不想为大量数据创建存储。所以我听说了初始化,这听起来正是我想要的;我只是无法让它工作。这是我尝试的一个例子:
@synthesize name;
...
- (NSString *)name {
if (!name) name = [[NSString alloc] init];
return name;
}
然后在其他地方
myObject.name = localName;
如果我在其初始化程序中使用alloc 和init myObject 的名称,那么这可以正常工作。但是,当我尝试上面的惰性初始化时,对象的名称在尝试设置后变为nil。我做错了什么?
【问题讨论】:
-
ARC 开启了吗?这是针对 iOS 5/4 的,还是手动引用计数?
-
是的 ARC 已开启,适用于 iOS 5
标签: objective-c lazy-loading lazy-initialization