我开始冒险了Objective-C,iOS我有一件事,我不知道如何正确使用,这实际上是在吹我的脑海.
许多教程在如下.m定义的文件中都有私有类变量:
@interface ViewController (){
@property (nonatomic, strong) NSMutableArray *myArray;
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
@implementation ViewController
NSMutableArray *myArray;
@end
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,我可以使用_myArray而不是self.myArray,我喜欢,但是我应该将所有私有变量放在接口文件中吗?这两个变量有什么区别?我什么时候应该使用一个而不是另一个,哪个更安全?
不同之处在于:
_myArray 是实例变量.
self.myArray 在你的对象上调用getter方法.
使用self.myArray = nil使变量通过其setter,因此在不使用ARC时释放对象.
atomic(默认值),这意味着访问变量是线程安全的,具有性能成本nonatomic property表示从多个线程访问变量或属性时可能发生竞争条件.通常,atomic用于与多个线程nonatomic共享的对象以及UI或非共享对象.
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |