我知道很多類似的問題已經被問,這就是爲什麼我毫不猶豫地在所有張貼此,但我找不到任何確切回答我的問題:問題有關與@property @synthesize釋放對象
當我使用@property
和@synthesize
,是否@synthesize
負責釋放被設置對象的原始值?即如果我有:
@interface SomeClass:NSObject
{
NSObject *object;
}
@property (nonatomic, retain) NSObject *object;
@end
@implementation SomeClass
@synthesize object;
@end
這相當於獲得一個看起來像這樣的setter方法嗎?
-(void)setObject:(NSObject *)newObject
{
[object release];
object = [newObject retain];
}
或者我必須照顧自己釋放原始對象嗎?
感謝您的澄清!
相對於視控制器,其中一個最好的做法要求做self.object =零;在viewDidUnload()中做[object release];在dealloc中。由於對象在viewDidUnload nil賦值期間被釋放,我們的dealloc釋放調用被髮送到'nil'。 – Saran