iOS 细节整理

2020-05-25  本文已影响0人  114105lijia

1、申明属性时,NSMutableArray用copy修饰还是strong修饰?

应该用strong修饰。用copy有可能会导致闪退,因为copy一个可变对象后,就变为不可变对象了。在执行增、删、改操作时,会引起闪退。
可以自己测试下面代码:

@property (nonatomic, copy) NSMutableArray *aArray;
@property (nonatomic, strong) NSMutableArray *bArray;

- (void)test {
    NSMutableArray *cArray = [NSMutableArray array];
    [cArray addObject:@"a"];
    
    self.aArray = cArray;
    self.bArray = cArray;
    
    NSLog(@"-----%@",[self.aArray class]);
    NSLog(@"-----%@",[self.bArray class]);
    
    [self.bArray removeAllObjects];
    [self.aArray removeAllObjects]; //闪退
}
上一篇 下一篇

猜你喜欢

热点阅读