我的2.0.1 phonegap应用程序我在MainViewController中添加了一个属性
@property (nonatomic, readwrite, copy) NSString* test;
然后我在initWithNibName方法中初始化属性,就像phonegap建议的那样。
test = @"test";
这样可以正常工作,但是我看到有些人做了以下操作来初始化那些属性:
test = [[NSString alloc] init];
我认为@property已经被分配到内存并且已经初始化为字符串,所以不需要做所有这些o.0:S?
什么是正确的方法?
答案 0 :(得分:1)
要正确初始化属性,您应该使用self.test = @"test"
。 [[NSString alloc] init];
的使用绝对毫无意义,没有理由任何人这样做。如果您想要一个空字符串而不是nil
,这是类类型的成员变量(和合成属性)的默认值,您只需将test设置为@""
,self.test = @""
即可。
我认为@property已经被分配给了 内存并初始化为字符串已经没有必要完成所有操作 那个o.0:S?
如上所述,成员变量(包括由属性合成的变量)将设置为默认值,在这种情况下为nil
。