假設現在有個類別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了!
沒有留言:
張貼留言