美文网首页iOS Developer
Objective-C 关键字总结

Objective-C 关键字总结

作者: Lucaziki | 来源:发表于2016-04-25 23:05 被阅读328次

    1.__bridge 关键字来实现id类型与void*类型的相互转换,即OC与C指针的转换。
    2.__block Blocks可以访问局部变量,但是不能修改。如果修改局部变量,需要加__block。
    3.__weak 为什么不用__block 是因为通过引用来访问self的实例变量 ,self被retain,block也是一个强引用,引起循环引用,用__week是弱引用,当self释放时,weakSelf已经等于nil。
    4.__strong 强引用,默认。
    5.alloc 对象分配后引用计数为1。
    6.retain 对象的引用计数+1。
    7.copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变。
    8.release 对象引用计数-1 如果为0释放内存。
    9.autorelease 对象引用计数-1 如果为0不马上释放,最近一个autoreleasePool时释放。
    10.strong 用来修饰强引用的属性。
    11.weak 用来修饰弱引用的属性。
    12.unsafe_unretained 类似weak,但是不指向nil,会导致野指针。

    copy和retain的区别

    copy: 建立一个索引计数为1的对象,然后释放旧对象
    retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1。

    copy和strong的区别

    copy是为了安全,防止NSMutableString赋值给NSString时,前者修改引起后者值变化而用的。

    相关文章

      网友评论

        本文标题:Objective-C 关键字总结

        本文链接:https://www.haomeiwen.com/subject/svjqrttx.html