OC iOS中的Copy

作者: 绍清_shao | 来源:发表于2019-11-25 15:56 被阅读0次

    目录

    • 作为关键词的时候
    • 作为函数的时候

    作为关键词的时候

    @property (nonatomic ,readwrite, strong) NSArray *array;
    对赋值的对象进行内容的拷贝,与strong相反,strong是对引用拷贝,即同一引用。

    作为函数的时候

    [immutableObject copy] // 浅复制
    [immutableObject mutableCopy] //深复制
    [mutableObject copy] //深复制
    [mutableObject mutableCopy] //深复制
    

    NSString、NSArray、NSDictionary
    调用copy,是对其对象指针的赋值
    调用mutableCopy,是对其内容的赋值

    NSMutableString、NSMutableArray、NSMutableDictionary
    调用copy和mutableCopy,都是对其内容的赋值

    如果strong关键词标识,但遇到mubleObject的copy会怎么样?

    @property (nonatomic ,readwrite, strong) NSArray *array;
     NSArray *array = @[ @1, @2, @3, @4 ];
     NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array];
       
    [mutableArray addObjectsFromArray:array];
    
    self.array = [mutableArray copy];
    [mutableArray removeAllObjects];;
    NSLog(@"%@",self.array);
    

    array与mutableArray地址不一样,它们的对引用的对象进行操作,互不影响。

    相关文章

      网友评论

        本文标题:OC iOS中的Copy

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