Objective-C中属性使用
来源:互联网 发布:mac windows截屏 编辑:程序博客网 时间:2024/05/17 01:26
在Objective-C中有些使用中一些记录
一。atomic 与nonatomic 区别
atomic 原子性
设置成员变量的@property属性时,默认为atomic,提供多线程安全。
nonatomic 非原子性
禁止多线程,变量保护,提高性能。
建议在没有多线程数据处理情况下时候性能较高的nonatomic。
二,self.xx 与_.xx区别
前者调用该类的setter或getter方法,后者直接获取自己的实例变量。
1,经过@property的属性,在赋值的时候最好带上self.来访问。比如声明为retain的属性a ,只有经过self.a=x;这样才会对x retain一次么,否则不会。同时如果是不使用
A * _a = [A alloc]int];
self.a = _a;
_a release;
2、经过@synthesize的属性,在释放的时候,如果@property的释放的时候要么这样写:
self.a = nil;
要么这样写 :
[a release];
a = nil;
如果这样写:
[self.a release];
a = nil;
或者这样:
[self.a release];
self.a = nil;
或者。。。
这样的话编译器不会报错 ,但是运行时就会奔溃,提示 A release 时出问题 ,程序尝试 释放了已经释放的对象。这样写表面上看起来 跟上面没有多大的差别 啊,为什么会 出现这样的问题呢?问题就出在@property和@synthesize这俩关键字上面。
self.a 访问a是get函数,self.a =nil;其实会先释放a原来指向的内存空间,然后将a赋值为nil,就是清空了对应的内存空间。所以self.a= nil;一句话就已经把对象的属性给释放掉了,后面不需要再release了。
0 0
- Objective-C中属性使用
- Objective-C中@property属性使用
- objective-c中使用c类型做属性
- Objective-C中属性的简单使用(存取方法)
- Objective-c 中@property中属性详解
- objective-c中property的属性
- Objective-C 中类属性(修饰)
- Objective-C中copy属性的概述
- Objective-C 编程语言(5)属性----属性的使用
- Objective-C属性介绍
- Objective-C属性介绍
- Objective-C属性介绍
- Objective-C 方法、属性
- Objective-C 方法、属性
- Objective-C 方法、属性
- Objective C 属性
- Objective-C语言:属性
- Objective-C属性介绍
- C++模板类代码只能写在头文件?
- 文件读写和链表插入删除显示 5.17
- 1041 : 国庆出游
- 第9周项目1-复数类中的运算符重载(续)
- LINUX下Socket编程 函数格式详解
- Objective-C中属性使用
- 学期前半段工作总结
- spring queryForList解析
- 第9周项目2-Time类中的运算符重载(续)
- 第9周项目4-我的向量类
- 一起talk Vim吧(第十九回:Vim插件之taglist)
- Hibernate 实体关联关系映射----总结
- 第9周项目5-方程也是类
- LDA话题模型与推荐系统