4

所以我有很多自定义对象,它们可能包含大量数据,或者根据用户的输入包含很少的数据。如果只需要一点点,我显然不想为大量数据创建存储。所以我听说了初始化,这听起来正是我想要的;我只是无法让它工作。这是我尝试之一的示例:

@synthesize name;

...

- (NSString *)name {
    if (!name) name = [[NSString alloc] init];
    return name;
}

然后在别的地方

myObject.name = localName;

如果我allocinitmyObject 的名称在其初始化程序中,那么这很好。但是,当我尝试上述延迟初始化时,对象的名称nil在尝试设置后变为。我究竟做错了什么?

4

1 回答 1

3
@property (strong) NSString *name;

@synthesize name = _name;

- (NSString *)name {
    if (!_name) {
        _name = [[NSString alloc] init];
        ...
    }
    return _name;
}
于 2012-07-09T00:50:14.253 回答