@property
来源:互联网 发布:苏卅网络电视李刚評話 编辑:程序博客网 时间:2024/06/05 10:57
1 assign:为基本数据类型准备的
2 copy:建立一个索引计数为1的对象,然后释放旧对象,Copy其实是建立了一个相同的对象
3 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
retain和copy区别:
比如一个NSString对象,地址为0x1111,内容为@“STR”;
Copy到另外一个NSString之后,地址0x222,内容相同;
retain到另外一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,也就是说,
retain是指针拷贝,copy是内容拷贝
常在声明一些成员变量时会看到如下声明方法:
@property(参数1,参数2) 类型 名字;
这里我们主要分析在括号中放入的参数,主要有以下三种:
setter/getter方法(assign/retain/copy)
读写属性(readwrite/readonly)
atomicity(nonatomic)
其中各参数说明如下:
assign
默认类型,setter直接赋值,而不进行retain操作
retain
setter 方法对参数进行release旧值,再retain新值,如下代码:
-(void)setObject:(ClassX*)value
{
if(obj!=value)
{
[obj release];
obj=[value retain];
}
}
copy方法
-(void)setObj:(ClassX*)value
{
if(obj!=value)
{
[obj release];
obj=[value copy];
}
}
assign:
-(void)setObj:(ClassX*)value
{
obj=value;
}
@property是一个属性访问声明,括号内支持一下几个属性
1 getter=getterName.setter=setterName
2 readwrite,readonly,设置可访问级别
3 assign,setter方法直接赋值
4 retain
5 copy,
6 nonatomic,非原子访问,不加同步,多线程并发访问会提高性能。默认加锁,加到所属实例级。
- property
- property
- Property
- @property
- @property
- property
- @property(..,..)
- property
- @property
- property
- property
- @property
- property()
- @property
- property
- @property
- property
- @property
- Undefined symbols for architecture i386或者armv7: “_OBJC_CLASS_$_XXX”
- 三种方法解决android帮助文档打开慢
- CPU与内存的中转站 ——了解CPU缓存的秘密
- sql日期补全
- Android SwipeRefreshLayout GMail的下拉刷新效果
- @property
- 图文详解YUV420数据格式
- Go语言(服务器开发):简易TCP客户端与服务端
- 学习Oracle SQL loader 的使用
- ASP.NET—013:实现带控件的弹出层(弹出框)
- Windows 7程序开发系列之一(任务栏篇)
- iOS 晃动手势
- jQuery弹出层插件Thickbox使用心得
- Cocos2dx 自定义字体的使用(中文)