如果我有一個使用輸入的方法,我必須保留嗎?我是否需要保留我在參數中收到的對象?
- (void) exampleMethod: (NSString *)input {
self.hey = [input retain];
}
如果我多次使用input
會怎麼樣?
如果我有一個使用輸入的方法,我必須保留嗎?我是否需要保留我在參數中收到的對象?
- (void) exampleMethod: (NSString *)input {
self.hey = [input retain];
}
如果我多次使用input
會怎麼樣?
閱讀Memory Management Rules。如果hey
是設置了retain
或copy
屬性的屬性,則不需要調用-retain
就可以了(您可以僅執行self.hey = input
)。
您不需要保留僅在該方法期間使用的參數。如果你要更長時間地參考它(如你在你的例子中那樣),那麼在大多數情況下你應該這樣做。但是,如果你正在使用一個屬性(它又是你似乎在這裏),你應該在屬性設置器本身內部管理內存,在調用setter時不要顯式調用retain。