美文网首页
2-6属性关键字

2-6属性关键字

作者: Rumbles | 来源:发表于2019-03-25 17:28 被阅读0次

读写权限。原子性。引用计数

readonly readwrite 默认的
atomic nonatomic 
retain/strong
assign  weak copy

assign。weak

都不会增加引用计数

修饰基本数据类型
对象置为空 不会把指针置为nil

weak
修饰对象
所指的对象释放后会自动置为nil ???

copy

浅拷贝 只是指针拷贝 增加引用计数
深拷贝 是内容拷贝【占用新内存】不增加引用计数

可变对象。copy mutableCopy 深拷贝
不可变对象。copy 浅拷贝  mutableCopy 深拷贝

copy方法都是不可变对象


@property (nonatomic, copy) NSMutableArray *arr;

会有什么潜在的问题? copy之后都是不可变对象。当我们调用add 或者 remove 的时候就回崩溃 

MRC下如何重写修饰变量的setter方法

- (void)setObj:(id)obj {
    if (_obj != obj) {
        [_obj release];
        _obj = [obj retain];
    }
}

分类的实现原理

1.运行时决定
2.同名方法 最后编译的最后生效
3.覆盖父类方法。 父类的仍然存在  

KVO实现原理

我们使用KVO是系统会为监听的那个类动态添加自类。然后父类的isa指向子类
子类 会重写setter方法

相关文章

  • 2-6属性关键字

    读写权限。原子性。引用计数 assign。weak copy MRC下如何重写修饰变量的setter方法 分类的实...

  • OC属性关键字分析

    属性关键字: 读写权限类属性关键字:readonly 和 readwrite 原子性类属性关键字 : atomic...

  • Swift 3.0之十、属性

    1. 存储属性 存储属性包括变量存储属性(由var关键字修饰)和常量存储属性(由let关键字修饰)。 注意: 上面...

  • Kotlin:可变或者不可变的属性的使用

    一、声明属性 Kotlin类可以有属性,属性可以用关键字var声明为可变的,否则使用只读关键字val; 使用属性,...

  • OC基础知识点梳理

    属性关键字 1. 属性关键字都有哪些? 读写权限readonly(默认)readwrite 原子性atomic(默...

  • iOS 分类关联属性

    属性修饰关键字

  • iOS属性关键字

    iOS属性关键字 引言 学习 iOS 开发的人,大多都绕不开属性关键字—— assign,weak,unsafe_...

  • iOS9 新特性(20180325)

    1.关键字 关键字:可以用于属性,方法返回值和参数中 关键字的作用:提示作用,告诉开发者属性信息 关键字好处:提高...

  • this关键字

    this关键字 this关键字代表当前对象 this. 属性 操作当前对象的属性 this. 方法 调用当前对象的方法

  • Day08 Java面向对象——多态

    关键字super 1)super,相较于关键字this,可以修饰属性、方法、构造器2)super修饰属性、方法:在...

网友评论

      本文标题:2-6属性关键字

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