码迷,mamicode.com
首页 > 其他好文 > 详细

关于self.与_的区别

时间:2015-07-22 16:28:44      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:objective-c   ios   

很多时候我们可以看到在xcode的.m开发文档中有self.aa与_aa字段,一直不太明白这其中的区别,和相关的用法,知道写一个东西,调bug的时候顿悟,现在记录下来,仅供参考!


很多时候我们这样写我们的Objective-c代码

//.h文件部分

@interface demo_selfAnd_

@end

//.m文件部分

@implementation demo_selfAnd_

@end


举个例子

@interface ViewController ()

@property(nonatomic,retain)NSArray *arr;

@end


@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    _arr = [[NSArray alloc] initWithObjects:@"1",@"2", nil];

}

- (void)setArr:(NSArray *)arr{

    if (arr) {

        _arr = [[NSArray alloc] initWithArray:arr];

    }else{

        

    }

}

@end


我有如上的代码。

好吧,你首先要知道- (void)setArr:(NSArray *)arr的作用(不知道请谷歌)

如果我只是如上的写上面的代码,那么- (void)setArr:(NSArray *)arr是不会运行的,

但如果我们把”_arr = [[NSArray allocinitWithObjects:@"1",@"2"nil]“换成self.arr = [[NSArray alloc] initWithObjects:@"1",@"2", nil];”,如果在set语句中设置断点,整个程序是会运行到断点处的,否则则不会运行到断点处,也就是说self与_最大的区别在于能否运行set语句。


其实如果不涉及set语句的话,其实是没有什么大区别的,但很多人往往喜欢往set写点什么,如果你在set里面有特殊的设置,而且需要执行这段代码的话,最好要加上self.而不是用_。












版权声明:本文为博主原创文章,未经博主允许不得转载。

关于self.与_的区别

标签:objective-c   ios   

原文地址:http://blog.csdn.net/jie863230900/article/details/47002413

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!