美文网首页iOS
深拷贝||浅拷贝

深拷贝||浅拷贝

作者: 兔子547 | 来源:发表于2018-01-10 13:58 被阅读0次

    浅拷贝:就是在已经有一块内存空间了(存储数据的),有一个指向这个空间的指针a,来修改这个空间内容,浅拷贝这个指针的意思就是在这个内存空间添加一个指针b,用来修改这个空间的值,b修改内存空间的值之后,当a访问这个内存空间的时候也跟着改变。

    深拷贝:就是在已经有一块内存空间了(存储数据的),有一个指向这个空间的指针a,来修改这个空间内容,深拷贝这个指针的意思就是创建一个新的的内存空间(指针b)把之前内存空间的里面的属性复制,b修改内对应存空间的值之后,当a访问他自己对应的内存空间的里面的值所以不改变。

    iOS的浅拷贝 NSString  NSArray  等不可变的的 “=”  “copy” 地址不改变

    对象的自定义浅拷贝


    -(id)copyWithZone:(NSZone*)zone{

        NSObject *object = [[self class] allocWithZone:zone];

        object.name = self.name;

        object.age = [self.age copy];

        return object;

    }


    iOS的深拷贝 NSString   实用“mutableCopy”  还有 NSMutableString  NSMutableArray  等不可变的的 “mutableCopy”  “copy” 地址改变

    对象的自定义深拷贝

    -(id)copyWithZone:(NSZone*)zone{

        NSObject *object = [[self class] allocWithZone:zone];

        object.name = [NSString stringWithFormat:@"%@",self.name];

        object.age = [self.age mutableCopy];

       return object;

    }

    相关文章

      网友评论

        本文标题:深拷贝||浅拷贝

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