[ios 开发笔记]:@property和成员变量

因为看的资料比较杂,一直很迷惑这个,今天花了点时间整理一下思路

比如下面的一些写法,不同的教程都不一样:
self.test=abc;
test=abc;
[test release];
[self.test release];
self.test=nil;
 
总结下:
@property(nonatomic,retain) NSString *test;
@synthesize test
1,这个操作在新版的xcode等于同时声名了成员变量test,并生成其getter\setter方法。
2,@property的retain等参数只是告诉编译器怎么生成(当初我理解成test和self.test是两个不同的指针)。
3,self.test=abc等于使用了@synthesize生成的setter,其过程有进行内存管理,不会造成内存泄漏,而test=abc则直接更改指针指向,所以尽量使用self.来赋值。
4,self.test=nil;等于执行了
 [test release];
[test=nil];
 
看一下@synthesize生成的setter是怎样工作的:
-(void)setString:(NSString *)test {

    if (string != newString) {

        [string release];

        string = [newString retain];

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值