@property (nonatomic,retain) NSString *name;

@synthesize name;

其实是声明了 name 的 getter 和 setter 方法;

等同于

-(NSString*)getName

{

     return name;

}

-(void)setName:(NSString*)myname

{

   if(name != myname)

{

   [name release];

   [myname retain];

  name = myname;

}

}

 

所以在调用属性 name 时候,用 self.name = 赋值时候 ,其实是调用了setName的方法;

NSString * studentName = [[NSString alloc] initWithFormat :@"xiaohong"];  // retain count 为 1

self.name = studentName; // retain count 为 2

[studentName  release];  // retain count 为 1

posted on 2013-07-30 15:02  童话DY  阅读(178)  评论(0编辑  收藏  举报