在我将对象分配给可能已经分配了对象的ivar的情况下,首先检查是否已将其分配给该ivar是否有任何好处。
例如,代码 A 代码 B 代码是否有任何好处?
if (ivar != anObject)
{
ivar = anObject;
}
ivar = anObject;
答案 0 :(得分:1)
它不是绝对必要的,我相信@ property / @ synthesize生成的setter这样做是为了优化并停止对同一对象的不必要的内存管理调用(对于一个强属性,旧对象被释放而新的对象被保留,但如果它们是相同的指针,则最终结果是保留计数不变)