iOS Copy

作者: lbfly_boy | 来源:发表于2017-03-10 09:45 被阅读32次

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

    }

    相关文章

      网友评论

          本文标题:iOS Copy

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