Objective-C 关于 copy 的使用

2018-07-24  本文已影响1人  CaptainRoy
1. 使用 @property 声明 NString,NSArray,NSDictionary时需要使用copy,使用strong的问题
2. block 使用copy
3. 深拷贝和浅拷贝
NSString *string = @"123"; // 0x100003138
NSString *stringCopy = [string copy]; // 0x100003138
NSMutableString *mStringCopy = [string copy]; // 0x100003138
NSString *stringMCopy = [string mutableCopy]; // 0x100748c00
NSMutableString *mStringMCopy = [string mutableCopy]; // 0x100504080
NSMutableString *mString = [NSMutableString stringWithFormat:@"123"]; // 0x100604bc0
NSString *stringCopy = [mString copy]; // 0x33323135
NSMutableString *mStringCopy = [mString copy]; // 0x33323135
NSString *stringMCopy = [mString mutableCopy]; // 0x10047b0b0
NSMutableString *mStringMCopy = [mString mutableCopy]; // 0x1020395a0
[immutableObject copy] 浅复制
[immutableObject mutableCopy] 深复制
[mutableObject copy] 深复制
[mutableObject mutableCopy] 深复制
NSArray *array = @[@1,@2,@3,@4]; // 0x100600180
NSArray *arrayCopy = [array copy]; // 0x10064e7f0
NSMutableArray *mArrayCopy = [array copy]; // 0x10041a4f0
NSArray *arrayMCopy = [array mutableCopy]; // 0x1004920d0
NSMutableArray *mArrayMCopy = [array mutableCopy]; // 0x100404300
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@1,@2,@3,@4, nil]; // 0x1005069a0
NSArray *arrayCopy = [mArray copy]; // 0x100494cc0
NSMutableArray *mArrayCopy = [mArray copy]; // 0x100601250
NSArray *arrayMCopy = [mArray mutableCopy]; // 0x100605f70
NSMutableArray *mArrayMCopy = [mArray mutableCopy]; // 0x10045c1b0
[immutableObject copy] 深复制
[immutableObject mutableCopy] 深复制
[mutableObject copy] 深复制
[mutableObject mutableCopy] 深复制
上一篇 下一篇

猜你喜欢

热点阅读