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