我有一个属性的以下代码,其 getter/setter 是我使用 @dynamic 关键字手动编写的:
@property (nonatomic, retain) NSObject* obj;
@dynamic obj;
-(NSObject*) obj
{
return obj;
}
-(void) setObj:(NSObject*)newObj
{
[obj release];
obj = [newObj retain];
}
我的问题是,如果我从 @property 声明中删除保留,编译器会提示默认值将被分配,并且它可能不是我想要的。如果我添加保留,我认为它会被忽略,因为我自己编写了 getter/setter?
只是寻求对此的快速确认。
最佳答案
你是对的,但是你的属性声明对于文档来说和对于你的实现一样重要,至少在这种情况下是这样。在某些时候,某人(六个月后的你?)会查看你的 .h 文件并说:“为什么不保留这个值?每次运行时它如何不会崩溃或像筛子一样泄漏内存?”
关于objective-c - 我应该使用 @property (retain) 作为保留的 @dynamic 属性 setter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866841/