我正在尝试确定为 NSString 属性设置默认值的推荐方法。
我知道在类的 init 和 dealloc 方法中使用访问器方法是不安全的。我经常有我想分配默认值的字符串常量。这样做的推荐方法是什么(考虑到 iVar 将在 dealloc 方法中释放)?
例如,我了解以下内容是不安全的:
@property (nonatomic, copy) NSString *identifier;
....
- (id) init
{
self = [super initWithLayer:displayLayer];
if (self != nil)
{
self.identifier = @"fireSpell01";
}
return self;
}
可以吗,还是建议这样做:
identifier = [@"fireSpell01" retain];
或者我必须这样做:
identifier = [[NSString stringWithString:@"fireSpell01"] retain];