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

  • 相关阅读:
    素数路径Prime Path POJ3126 素数,BFS
    Fliptile POJ3279 DFS
    Find the Multiple POJ1426
    洗牌Shuffle'm Up POJ3087 模拟
    棋盘问题 POJ1321 DFS
    抓住那只牛!Catch That Cow POJ3278 BFS
    Dungeon Master POJ2251 三维BFS
    Splitting into digits CodeForce#1104A
    Ubuntu下手动安装Nvidia显卡驱动
    最大连续子序列和
  • 原文地址:https://www.cnblogs.com/wcLT/p/3064576.html
Copyright © 2011-2022 走看看