美文网首页
OC Property

OC Property

作者: 玉思盈蝶 | 来源:发表于2021-04-03 13:43 被阅读0次

1、四种写法的区别:

@property (nonatomic, strong) NSArray *array0;
@property (nonatomic, copy) NSArray *array1;
@property (nonatomic, strong) NSMutableArray *array2;
@property (nonatomic, copy) NSMutableArray *array3;

PS:注意以下两点:

1>修饰属性问题,小心闪退:

@property (nonatomic,copy) NSMutableArray *mutableArray;
self.mutableArray = [NSMutableArray arrayWithObject:@"111"];
//    self.immutableArray = [NSArray array];
//    
//    NSLog(@"before mutableArray=%@,immutabxrleArray=%@",self.mutableArray,self.immutableArray);
//    
//    self.immutableArray = self.mutableArray;
[self.mutableArray addObject:@"222"];
    

上面的代码会闪退的。相当于以下代码。

NSMutableArray *arr =  [NSMutableArray arrayWithObject:@"111"];
self.mutableArray = [arr copy];

正确的写法:

@property (nonatomic,copy) NSArray *immutableArray;

@property (nonatomic,strong) NSMutableArray *mutableArray;

2>
NSArray,NSDictionary,NSSet -> copy
NSMutableArray,NSMutableDictionary,NSMutableSet->strong

参考链接:

https://www.jianshu.com/p/18241d9c075c

2、class修饰属性,更方便的实现单例:

@property (nonatomic, class) ViewController *vc;

+ (ViewController *)vc {
    static ViewController *instance = nil;
    static  dispatch_once_t onceToken = 0;
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
    });
    return instance;
}

+ (void)setVc:(ViewController *)vc {
    
}

相关文章

  • OC @property

    @property(属性) 属性是对成员变量setter和getter的封装。 特性关键字 1. 原子性 atom...

  • OC - property

    @property变量 1.@property定义的变量,默认的修饰符是什么? 关于ARC下,不显示指定属性关键字...

  • OC -- @property

    建立一个Person类 @interface --> @end ==> .h中类的声明@implementatio...

  • OC Property

    1、四种写法的区别: PS:注意以下两点: 1>修饰属性问题,小心闪退: 上面的代码会闪退的。相当于以下代码。 正...

  • 52个有效方法(6) - 理解“属性”这一概念

    “属性”(property)是OC的一项特性,用于封装对象中的数据。 @property @Property是声明...

  • @property参数

    ARC 1>OC对象类型 @property(nonatomic,strong)类名 *属性名 @property...

  • iOS属性

    什么是属性 属性是OC语言中的一个机制,我们在OC中用@property来声明一个属性,其实@property是一...

  • iOS基础之Objective-C(一)

    OC面向对象新增语法:1、属性生成器: @property //声明属性例:@property (nonatomi...

  • OC - @property定义

    对于OC中的Model,需要定义多个@property参数,其格式如下: @property (strong, n...

  • iOS属性

    OC属性 在OC中用@property来声明一个属性,其实@property是一个语法糖,编译器会自动为实力变量生...

网友评论

      本文标题:OC Property

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