2011-05-21 34 views
1

中的屬性和訪問器以下代碼是調用訪問器「set」函數還是直接修改指針myMemberObjective-C

aClass.h

@interface MyClass : NSObject { 
    NSArray *myMember; 
} 

@property (nonatomic, retain) NSArray *myMember; 

aClass.c

@implementation GameplayScene 

@synthesize myMember; 

- (id) init { 
    if ((self = [super init])) 
    { 
     myMember = [NSArray array]; 
    } 
} 

換句話說,我想知道如果該方法setMyMember被調用,或者如果myMember指針正在被修改直。

同樣,是myMember = [NSArray array]是否與self.myMember = [NSArray array]相同?

+0

[self.ivar和ivar之間的區別?](http://stackoverflow.com/questions/4142177/difference-between-self-ivar-and-ivar)和[整個更多](http ://stackoverflow.com/search q =%5Bobjc%5D +屬性+的ivar)。 – 2011-05-22 00:33:39

+0

謝謝@Josh Caswell。我確實環顧四周,但我想還不夠。 – jonsibley 2011-05-22 02:20:54

回答

5

沒有self.表示法,直接修改實例變量。有了它,屬性設置器被調用(並且由於您已將其設置爲retain屬性,因此它將被設置爲的新指針將被髮送retain消息)。

請參閱Apple的文檔declaringaccessing properties