博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS之weak
阅读量:5162 次
发布时间:2019-06-13

本文共 921 字,大约阅读时间需要 3 分钟。

iOS 5 中对属性的设置新增了strong 和weak关键字来修饰属性

strong 用来修饰强引用的属性;
@property (strong) ViewSample * btn;
对应原来的
@property (retain) ViewSample * btn; 和 @property (copy) ViewSample * btn;

weak 用来修饰弱引用的属性;

@property (weak) ViewSample * btn;
对应原来的
@property (assign) ViewSample * btn;

__weak, __strong 用来修饰变量,此外还有 __unsafe_unretained, __autoreleasing 都是用来修饰变量的。

__strong 是缺省的关键词。
__weak 声明了一个可以自动 nil 化的弱引用。
__unsafe_unretained 声明一个弱应用,但是不会自动nil化,也就是说,如果所指向的内存区域被释放了,这个指针就是一个野指针了。
__autoreleasing 用来修饰一个函数的参数,这个参数会在函数返回的时候被自动释放。
可以在block中防止循环引用,无法释放的BUG。

使用ARC时,需要遵循一定的规则:

不能使用retain/release/retainCount/autorelease方法
不能使用NSAllocateObject/NSDeallocateObject方法
不能显示的调用dealloc方法
使用@autoreleasepool块代替NSAutoreleasePool
不能使用NSZone(防止内存碎片化而引入的结构)
显示转换"id"和"void *"

Beginning ARC in iOS 5 Tutorial Part 1:http://www.raywenderlich.com/zh-hans/20855/ios-5-arc-%E5%85%A5%E9%97%A8-13

 

转载于:https://www.cnblogs.com/wcLT/archive/2013/05/07/3064576.html

你可能感兴趣的文章
delphi ,安装插件
查看>>
case when then的用法-leetcode交换工资
查看>>
11.28.cookie
查看>>
BeanShell简介
查看>>
python字符串操作
查看>>
不同程序语言的注释和变量要求
查看>>
语言基础(9):static, extern 和 inline
查看>>
ES5_03_Object扩展
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
如何在键盘出现时滚动表格,以适应输入框的显示
查看>>
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>