我对下划线命名和自我感到有点困惑。以下代码可以吗?
@interface MyClass()
@property (nonatomic,retain) NSString *name;
@property (nonatomic,retain) NSString *surname;
@end
@implementation MyClass
@synthesize name = _name;
@synthesize surname = _surname;
然后,当我需要指定一个值时,我这样做
self.name = [someParam retain];
答案 0 :(得分:2)
不,这不行,因为self.name
也将保留您在属性中声明的值。
这将保留:
self.name = someParam;
其他方式写入相同(请注意释放当前var):
if (_name != someParam) {
if(_name) {
[_name release], _name = nil;
}
_name = [someParam retain];
}
答案 1 :(得分:1)
你不必重复保留:)
只是:
self.name = someParam;
但其余的我认为没关系
答案 2 :(得分:0)
这不是正确的,因为您必须使用alias _name之类的
if(_name)
{
[_name release];
_name=nil;
}
else
{
//retain the object
}