2012-07-14 89 views

回答

1

它不是絕對必要的,我相信@財產/ @合成產生的制定者做到這一點作爲優化和停止unneseccary內存管理調用相同對象(對於強屬性,舊對象被釋放並且新對象被保留,但是如果它們是相同指針,則最終結果是保留計數不變)

+0

除了存儲器管理方法的支票也將防止不必要的KVO通知。 – 2012-07-14 09:41:18

+0

@BenedictCohen我不認爲這是真的。 KVO通知是在一個子類的setter實現中發送的,因此他們不知道實際值是否已更改 – wattson12 2012-07-14 09:46:35

+0

是的,您是正確的。我的錯。 '@ synthesize'不會觸發KVO通知,它們由'NSObject'處理。如果自動通知關閉(使用'automatedNotifiesObserversForKey:'),則@合成'屬性不會引發KVO通知。 – 2012-07-14 10:08:30