copy 与 retain的区别 copy: 建立一个索引计数为1的对象,然后释放旧对象 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”,
分类:
其他好文 时间:
2016-03-02 19:39:53
阅读次数:
147
一、深拷贝与前拷贝的区别 浅拷贝是拷贝指针,深拷贝是拷贝对象内容。 二、关于遵循NSCopy和NSMutableCopy协议后的copy及mutablCopy区别 1、非集合不可变对象,copy是浅拷贝,mutableCopy是深拷贝; 2、非集合可变对象,copy和mutableCopy是深拷贝;
分类:
其他好文 时间:
2016-02-28 06:29:36
阅读次数:
198
首先关于copy和mutableCopy的行为:不管是NSString这种元素类、还是NSArray这样的容器类、还是Mutable和非Mutable类,copy和mutableCopy调用后表现的行为到底是什么样完成取决于类本身NSCopying和NSMutableCopying协议是如何实现的。
分类:
其他好文 时间:
2016-02-17 10:46:41
阅读次数:
147
iOS内存管理机制,当使用非alloc/new/copy/mutableCopy获取的对象时,编译器根据使用处上下文,做了不同的处理。
分类:
移动开发 时间:
2016-01-28 07:03:14
阅读次数:
165
不可变对象执行不可变拷贝(copy)就是浅拷贝如果执行拷贝时 只要有可变的无论是可变对象还是可变拷贝(mutableCopy)就是深拷贝只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!copy 创建的是不可变副本(NSString , NSArray, NSDictionary)mutabl...
分类:
其他好文 时间:
2016-01-25 21:17:18
阅读次数:
219
快速创建对象的时候系统会自动释放一次,如:NSDictionary *dic =[NSDictionary dictionary]; //此时系统自动自动释放一次内存,对象引用计数就 ' -1 '创建(复制)不可变的对象用 copy;创建(复制)可变的对象用 MutableCopy;frame:是以...
分类:
其他好文 时间:
2016-01-24 06:59:35
阅读次数:
172
+ (NSString *) stringByReplaceUnicode:(NSString *)string{ NSMutableString *convertedString = [string mutableCopy]; [convertedString replaceOccur...
分类:
Web程序 时间:
2016-01-19 15:41:35
阅读次数:
185
copy和mutableCopy语法的目的:改变副本的时候,不会影响到源对象;调用Copy产生的对象是不可变的,调用mutableCopy产生的对象是可变的,与调用对象是否可变无关。 Copy 需要先实现NSCoppying协议,创建的是不可变副本(如字符串、数组、字典)。 mutableC...
分类:
其他好文 时间:
2016-01-13 17:24:21
阅读次数:
179
-(NSString *)encrypt:(NSString *)string withKey:(NSString *)key{ self.sBox = [[self frameSBox:key] mutableCopy]; unichar code[string.length]; int i...
分类:
移动开发 时间:
2016-01-12 18:09:06
阅读次数:
186
字面量 //字面量 NSArray *a1 = @[@"a",@"b",@"c"];// NSMutableArray *ma1 = @[@"a",@"b",@"c"];//报了类型不匹配的警告 NSMutableArray *ma1 = @[@"a",@"b",@"c"].mutableCopy;...
分类:
其他好文 时间:
2016-01-10 17:00:30
阅读次数:
122