黑马程序员技术交流社区

标题: 新人笔记1 [打印本页]

作者: snowimba    时间: 2015-10-10 23:52
标题: 新人笔记1
-(void)addSong;
-(void)delSong;
1、copy概念
        拷贝的意思
        使用copy可以产生一个副本
        副本修改对源文件无影响
        copy创建的是不可变的副本
        mutable创建的是可变的副本
       
       
        实现
        copy:要遵守一个协议
       
        //    创建一个字符串
            NSMutableString *str4 = [NSMutableString string];
            NSString *str = @"abc";
            NSLog(@"%@,%p",str,str);
        //    不可变的,copy也是不可变的
            NSString *str2 = [str copy];
            NSLog(@"%@",str);
        //    可变的NSMutableString ,mutableCopy可变的
            NSMutableString *str3 = [str mutableCopy];
            [str3 appendString:@"xxxx"];
            NSLog(@"%@",str3);
        copy的对象是不可变的,不管原对象是否可变,浅复制
        mutableCopy是可变的,不管原对象是否可变,深复制
       
        不可变的对象,进行了copy以后,没有重新分配空间
        浅拷贝,只是拷贝了地址,并没有真正的分配新的空间
        源对象引用计数加1
        新对象指向原对象地址
       
        深拷贝,内容拷贝,新开空间
       
        copy关键字只用于NSString和block类型
       
       
       





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2