我想知道以下属性声明中的保留有什么影响(如果有的话)。手动实现的setter保留变量。
接口:
@property (nonatomic, retain, setter=setIncident:) Incident * incident;
实现:
- (void)setIncident:(CSIncident *)newIncident
{
if (incident != newIncident)
{
[incident release];
incident = [newIncident retain];
}
}
答案 0 :(得分:0)
由于您手动控制设置行为并手动保留它,因此它没有多大价值。
唯一(非常小的)值是可读性,当您只是查看标题时可以理解行为,如果删除手动实现,则可以减少流失(但您必须删除setter =)。
在您的问题中,setDog和setIncident
之间也存在不匹配