如果手动实现setter,是否需要(保留)?

时间:2011-09-16 11:17:11

标签: objective-c ios properties setter

我想知道以下属性声明中的保留有什么影响(如果有的话)。手动实现的setter保留变量。

接口:

@property (nonatomic, retain, setter=setIncident:) Incident * incident;

实现:

- (void)setIncident:(CSIncident *)newIncident  
{  
    if (incident != newIncident)  
    {  
        [incident release];  
        incident = [newIncident retain];  
    }  
}

1 个答案:

答案 0 :(得分:0)

由于您手动控制设置行为并手动保留它,因此它没有多大价值。

唯一(非常小的)值是可读性,当您只是查看标题时可以理解行为,如果删除手动实现,则可以减少流失(但您必须删除setter =)。

在您的问题中,setDog和setIncident

之间也存在不匹配