zoukankan      html  css  js  c++  java
  • IOS之weak

    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

  • 相关阅读:
    生成PDF文档
    2016 百度研发岗面试总结
    有趣的数
    2016阿里校招python研发面试
    python 快排,堆排,归并
    三种简单的排序写下贴上
    BestCoder Round #47 1003
    c++ 适配器
    微信公众平台-超级大赛问题汇总1
    正则表达式简单总结
  • 原文地址:https://www.cnblogs.com/wcLT/p/3064576.html
Copyright © 2011-2022 走看看