iOS Copy

因为父类指针可以指向子类对象,使用copy的目的是为了让本对象的属性不受外界影响,使用copy无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本.

如果我们使用是strong,那么这个属性就有可能指向一个可变对象,如果这个可变对象在外部被修改了,那么会影响该属性.

举例:一个人有书

@interface Person : NSObject

@property (strong, nonatomic) NSArray *bookArray1;

@property (copy, nonatomic) NSArray *bookArray2;

@end

@implementation Person

//省略setter方法

@end

//Person调用

main(){

NSMutableArray *books = [@[@"book1"] mutableCopy];

Person *person = [[Person alloc] init];

person.bookArray1 = books;

person.bookArray2 = books;

[books addObject:@"book2"];

NSLog(@“bookArray1:%@“,person.bookArray1);{book1,book2)

NSLog(@“bookArray2:%@“,person.bookArray2);{book1}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容