【发布时间】:2013-10-11 09:44:27
【问题描述】:
我有 2 个问题。
First - 在 obj-c 中是否这样声明字符串
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *city;
那些(nonatomic, copy) 是正确的还是我应该使用(nonatomic, strong) 或其他什么?
第二 - 如果我想为上述字符串设置自定义初始化程序,我是否使用
-(id)initWithName:(NSString *)n andCity:(NSString *)c
{
self = [super init];
if (self) {
self.name = n;
self.city = c;
}
}
或者我应该使用:
-(id)initWithName:(NSString *)n andCity:(NSString *)c
{
self = [super init];
if (self) {
self.name = [n copy]
self.city = [c copy];
}
}
正如我所见,这两种方法似乎都适用于这两个问题,但我确信其中一种方法比另一种更正确,所以我想问一下我应该使用哪种方法来在以后的项目中编写正确的代码。
谢谢。
【问题讨论】:
标签: objective-c nsstring initialization init nscopying