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]; //闪退
}
网友评论