iOS Copy

2017-03-10  本文已影响32人  lbfly_boy

因为父类指针可以指向子类对象,使用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}

}

上一篇 下一篇

猜你喜欢

热点阅读