美文网首页
OC属性修饰符

OC属性修饰符

作者: 希罒 | 来源:发表于2019-08-15 10:29 被阅读0次
  • readwrite:是可读可写,会生成getter和setter方法(缺省值)
  • readonly:是只能读取,只会生成getter方法,不会生成setter方法,在值不想被外界修改时使用
  • assign:简单直接赋值,不更改索引计数,对基础数据类型和C数据类型 适用简单数据类型
  • copy:属性必须是objc对象,并遵守了NCoding协议;在赋值时使用传入一份拷贝,拷贝工作由copy方法执行,将指向新的内存地址,常常用于(NSArray,NSDictionary,NSString),释放旧对象
- (void)setName:(NSString *)name {
    id n = [name copy];
    [name release];
    _name = n; 
}
  • retain:属性必须是objc对象,此时输入会增加对象的引用计数加1
  • strong:表示只要该属性一直指向某个对象,这个对象就不会被销毁(缺省值)
  • weak:表示只是指向对象,不隐式发送retain, 指向对象一旦被销毁就会自动nil化
  • atomic:原子性,在多线程的环境下是有必要的,会在setter里加锁,保证线程安全, 效率降低(缺省值)
  • nonatomic:非原子性,与atomic是相反的
  • unsafe_unretained:功能几乎等同于weak, 但是对象被销毁不会自动nil化, 成了野指针
  • nonnull:表示不可以为nil,NULL, 不遵守规定编译器会警告
@property (nonatomic, strong, nonnull) NSString *name;
- (void)setName:(_Nonnull NSString *)name;
- (void)setName:(nonnull NSString *)name;
  • nullable:告诉编译器表示值可以空(缺省值)
@property (nonatomic, strong, nullable) NSString *name;
- (void)setName:(_Nullable NSString *)name;
- (void)setName:(nullable NSString *)name;
  • null_resettable:表示如果不指定属性的值,系统就会给个默认值,保证此属性不为nil,在不赋值直接调用self.view 时 view属性会在get方法自动初始化
  • null_unspecified:不确定是否为空,基本没用

相关文章

  • 菜鸟教程——iOS属性修饰符strong和copy区别

    OC中属性修饰符有很多,比如说raadwrite,readonly,weak,copy,assign,retain...

  • OC中属性修饰符对容器的影响

    OC中用于内存管理的属性修饰符有:copy、strong、weak、assign、unsafe_unretaine...

  • OC属性修饰符

    readwrite:是可读可写,会生成getter和setter方法(缺省值) readonly:是只能读取,只会...

  • 字符串用copy修饰

    属性修饰符: 既然NSString属于OC对象,那么我们先不使用Copy修饰,在ARC模式下,声明的属性默认是st...

  • OC中属性修饰符

    主要的修饰符 以MRC和ARC来区分 iOS内存管理 iOS内存管理机制的原理主要是对引用计数管理(retainC...

  • OC-属性修饰符

    OC对象:不可变对象copy是浅拷贝,其他(可变对象的mutablecopy与copy,不可变对象的mutable...

  • OC属性的修饰符

    属性修饰符是什么?有什么作用? 属性修饰符,顾名思义就是对属性进行修饰的符号。不同修饰符修饰的属性会表现出不一样的...

  • OC属性,类型修饰符

    修饰符是编译器的行为: 类型类型关键字原子性atomic , nonatomic可读写readwrite、read...

  • OC属性&修饰符理解

    OC属性 [toc] 属性的作用 1. 为成员变量提供访问的接口。setter和 getter 方法 @prope...

  • OC中的属性修饰符

    1、copy copy属性的目的就是为了改变副本而不去影响源对象 深拷贝就是把内容拷贝一份产生一份新的对象,新对象...

网友评论

      本文标题:OC属性修饰符

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