所以我有很多可以包含大量数据的自定义对象,或者根据用户输入的数据非常少。如果只需要一点点,我显然不想为大量数据创建存储空间。所以我听说初始化,听起来就像我想要的那样;我无法让它发挥作用。以下是我尝试之一的示例:
@synthesize name;
...
- (NSString *)name {
if (!name) name = [[NSString alloc] init];
return name;
}
然后在其他地方
myObject.name = localName;
如果我的初始化程序中有alloc
和init
myObject的名称,那么这样可以正常工作。但是,当我尝试上述延迟初始化时,对象的名称在尝试设置后变为nil
。我做错了什么?
答案 0 :(得分:3)
@property (strong) NSString *name;
@synthesize name = _name;
- (NSString *)name {
if (!_name) {
_name = [[NSString alloc] init];
...
}
return _name;
}