Copy的作用是将已有对象复制出一个性的对象,在对新的对象做修改的时候,原来的对象没有影响
Copy的使用,分为两种
Copy出一个可变对象(mutableCopy方法)
copy出一个不可变对象(copy)
(深拷贝) :内容和对象都会拷贝
结构改变了的copy都是深拷贝 从可变copy出一个可变结构也是深拷贝
(浅拷贝):仅仅拷贝对象(指针),内容还是以前的那块内容 从不可变对象copy出一个不可变对象
void MutableCopy(){
//创建一个NSString对象
NSString *str = [[NSString alloc] initWithFormat:@"My age is %i",20];
//更具已有对象,Copy出一个可变字符串
NSMutableString *string = [str mutableCopy];
//我们先验证copy出来的可变对象是否为同一个对象,其实对于这一点,不用想都知道,一个可变一个不可变,必然不是同意个对象
NSLog(@"%i",str == string);
[string appendFormat:@" I love"]; //在可变字符串后面添加一段字符串
NSLog(@"%@",string);
[str release];
[string release];
}
#pragma mark copy的使用
void stringCopy(){
//创建一个NSString对象
NSString *str = [[NSString alloc] initWithFormat:@"My age is %i",20];
//根据已有对象,Copy出一不可变个可变字符串
NSMutableString *string = [str copy];
//我们先验证copy出来的不可变对象是否为同一个对象,这一点和可变字符串的是有区别的
NSLog(@"%i",str == string); //这个返回值为1,也就是说,创建出来的对象和以前的对象是同一个对象 这是因为,创建出来的这个对象也是不可变的,那么系统为了性能考虑,不会重新分配内存创建一个新的对象,而是直接返回源对象本身
[string release];
[str release]; //有过alloc new copy这样的操作,都需要我们手动释放内存
}
本文深入探讨了Objective-C与Swift作为iOS开发语言的特点与应用,包括语法差异、性能对比、社区生态及未来发展趋势。帮助开发者更好地选择适合的编程语言进行iOS应用开发。
1090

被折叠的 条评论
为什么被折叠?



