美文网首页
iOS 区分一些关键字和修饰词

iOS 区分一些关键字和修饰词

作者: 儒雅的减肥大哥 | 来源:发表于2019-02-13 16:02 被阅读8次
    • assign 和weak

    两者都是弱引用,两者修饰的属性在指向一个对象时都不会增加对象的引用计数,当所指的对象被释放时,weak的属性会被置为nil,而assign不会,所以,weak相对来说比较安全。assign可以用非OC对象以及基本类型,而weak必须用于OC对象。

    • __block和__weak

    __block不管是ARC还是MRC模式下都可以使用,可以修饰对象,也可以修饰基本数据类型
    __weak只能在ARC模式下使用,只能修饰对象(NSString),不能修饰基本数据类型
    __block修饰的对象可以在block中被重新赋值被修改,__weak修饰的对象不可以修改

    • Equal 和 isEqualToString

    isEqual: 判断两个对象的等同性,首先判断两个对象的地址是否相同,再判断类型是否一致, 然后再判断对象的具体内容是否一致,IsEqual 是 NSObject 的方法
    isEqualToString 是 NSString 的方法,因此从继承关系角度来说isEqualToString 是 isEqual 的衍生方法,
    isEqualToString: 直接判断字符串内容是否相等。
    ==: 对于基本数据类型,
    ==运算符比较的是值;
    对于对象类型, ==运算符比较的是对象的地址是否相同。

    相关文章

      网友评论

          本文标题:iOS 区分一些关键字和修饰词

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