假設現在有個類別Test,裡面有一個NSData的成員。
@interface Test : NSObject { NSData *iData; } @property(nonatomic,retain) NSData *iData; @end
當我們使用 self.NSData 的時候,就等同於呼叫編譯器幫我們自動產生的getter方法,retain + 1。
當我們使用 self.NSData = [[NSData alloc] init],就等同於呼叫setter的方法。
而編譯器產生的getter/setter就等同於自己寫的:
-(void) setIData : (NSData *) newData { if(iData != newData){ [iData release]; iData = [newData retain]; } } -(NSData *) getIData { return iData; }
另外,在dealloc時,就不要再用self了!
沒有留言:
張貼留言