美文网首页
属性关键字

属性关键字

作者: 晨阳Xia | 来源:发表于2020-11-13 19:20 被阅读0次

assign

"设置方法"只会执行针对“纯量类型”(例如:CGFloat 和 NSInteger)的简单赋值操作。没有引用计数

weak

此特质表明了该属性定义了一种“非拥有关系”,为这种属性设置新值时,设置方法既不保留新值也不释放旧值。此特质同assign类似,然而在属性所知道的对象遭到摧毁是,属性值也会清空
weak属性的管理方式:于海的视频

strong

此特质表明该属性定义了一种“拥有关系”,为这种属性设置新值时,设置方法会先保留新值,并释放旧值,然后再将新值设置上去
MRC中的保留新值释放旧值,并将新值设置上去的代码如下:

‘- (UITextField *) userName {
        return userName;
     }
    
    - (void) setUserName:(UITextField *)userName {
        [userName retain];
        [_userName release];
         _userName = userName;
    }
    // 先retain 后 release 是什么意思?
    // 原因:加入self.userName = self.userName.如果我先执行release,self.name中的_userName给释放掉。self.name会被重置为nil

copy

此特质所表达的所属关系与strong类似。然而设置方法并不保留新值,而是将其copy.
当属性类型为NSString时,经常用此特质来保护其封装性,因为传递给设置方法的新值可能执行一个NSMutableString类的实例。
copy不能用来修饰NSMutableArray,因为copy的对象都会返回一个不可变类型。

相关文章

  • 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修饰属性、方法:在...

  • iOS readonly 属性赋值小记

    readonly 关键字用于属性的存取控制 ,如果不使用readonly ,编译器默认属性关键字为 readwri...

网友评论

      本文标题:属性关键字

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