黑马程序员----@property的参数
来源:互联网 发布:淘宝价格区间违规 编辑:程序博客网 时间:2024/05/05 20:16
------- IOS开发、IOS培训、期待与您交流! -------
strong和weak的区别
strong表示保留它指向的堆上的内存区域不再指向这块区域了。
也就是说我强力指向了一个区域,我们不再指向它的条件只有我们指向nil或者我自己也不在内存上,没有人strong指向我了,weak表示如果还没有人指向它了,它就会被清除内存,同时被指向nil,因为我不能读取不存在的东西。
weak只在IOS5.0使用
这并不是垃圾回收,我们用reference count表示堆上还有多少strong指针,当它变为0就马上释放。
本地变量都是strong,编辑器帮你计算
@property那里用的strong表示_age指针是强指针
对象一般用strong,什么时候用weak,什么时候用assign
retain:
@property (retain) Book *book;如果这里加了个retain,就会重写setter方法,改为如下:
- (void)setBook:(Book *)book
{
if (book != _book) {
[_bookrelease];
_book = [book retain];
}
}
也就是说:retain:自动生成的setter方法里面,release旧值,retain新值
注:有了retain还是别忘记在dealloc里[_bookrelease];谁retain,谁就谁那里release。
注:同一种类型的@property类型的参数只能写一个,不同类型的才可以一起写。
例如:@property (retain,assign) Book *book; 这样是错误的。
@property (readwrite,readonly) Book *book; 这样也是错误的
retain:release旧值,retain新值(适用于OC对象类型)
assign:直接赋值(默认的,适用于非OC对象类型,不是对象都assign)
copy:release旧值,retain新值
是否要生成setter方法:
readwrite:同时生成setter方法和getter方法的声明和实现(默认的)
readonly :只会生成getter的声明和实现
多线程:
nonatomic:性能高,告诉系统,生成setter方法时不要加多线程代码(一般用这个)
atomic :性能低(默认的)
getter和setter
getter:决定了getter方法的名称,一定要有个冒号 :
setter :决定了setter方法的名称
@property (getter = abc,setter = abc:) Book *book;
也就是说,[p setBook:12];和[p setAbc:12]这两种写法相同的,同时,p.book和p.abc也是一样的
一般用在返回BOOL类型的方法里,头文件里@property (getter = isRich) BOOL rich;在主函数中,BOOL b = p.isRich;
- 黑马程序员----@property的参数
- 黑马程序员 --- @property参数
- 黑马程序员--ios中 property的参数
- 黑马程序员-----@property参数学习
- 黑马程序员---05@property参数相关的内存管理
- 黑马程序员--@property的使用
- 黑马程序员_OC基础11_@property参数
- 黑马程序员--IOS学习日记:09--property参数
- 黑马程序员----Objective-C学习笔记之@property参数
- 黑马程序员——OC语言加强---@property参数
- ——黑马程序员——OC中@property参数
- 黑马程序员-@property与@synthesize的用法
- 黑马程序员--OC之@property的使用
- 黑马程序员-@property的使用以及注意事项
- 黑马程序员---property用法
- 黑马程序员-oc@property
- 黑马程序员-----@property和@synthesize
- 黑马程序员---@property和@synthesize
- Font size
- 数据结构之struct使用
- 黑马程序员----继承
- OpenCL内核函数支持double和结构体
- 李元翼可欺而不忍欺 柳成龍欲欺而不可欺
- 黑马程序员----@property的参数
- apache创建虚拟目录,一个服务器多个站点
- JAVA各种运算
- 容大家居购物村开业啦!给力,给礼,更给利!还送嫁妆哦!!!
- codeblocks学习初步
- 黑马程序员----多态
- 插入排序
- 在线重定义普通表为分区表
- 大二开始时的想法