A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© snowimba 中级黑马   /  2015-10-10 23:52  /  818 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

-(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类型
       
       
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马