深.淺拷貝
copy/mutableCopy NSString
NSString *string = @"漢斯哈哈哈";
// 沒(méi)有產(chǎn)生新對(duì)象
NSString *copyString = [string copy];
// 產(chǎn)生新對(duì)象
NSMutableString *mutableCopyString = [string mutableCopy];
NSLog(@"string = %p copyString = %p mutableCopyString = %p", string, copyString, mutableCopyString);
string = 0x1020e42b0
copyStirng = 0x1020e42b0
mutableCopyString = 0x7fe711c23370
copy/mutableCopy NSMutableString
NSMutableString *string = [NSMutableString stringWithString:@"漢斯哈哈哈"];
// 產(chǎn)生新對(duì)象
NSString *copyString = [string copy];
// 產(chǎn)生新對(duì)象
NSMutableString *mutableCopyString = [string mutableCopy];
NSLog(@"string = %p copyString = %p mutableCopyString = %p", string, copyString, mutableCopyString);
string = 0x7fe711d911f0
copyStirng = 0x1020e42b0
mutableCopyString = 0x7fe711d09410
注意:其他對(duì)象NSArray、NSMutableArray 、NSDictionary、NSMutableDictionary一樣適用
#import <Foundation/Foundation.h>@interface HSPerson : NSObject@property (nonatomic, copy) NSString *name;@end
NSMutableString *string = [NSMutableString stringWithFormat:@"漢斯哈哈哈"];
HSPerson *person = [[HSPerson alloc] init];
person.name = string;// 不能改變person.name的值,因?yàn)槠鋬?nèi)部copy新的對(duì)象
[string appendString:@" hans"]; NSLog(@"name = %@", person.name);
@property (nonatomic, strong) NSString *name;
NSMutableString *string = [NSMutableString stringWithFormat:@"漢斯哈哈哈"];
HSPerson *person = [[HSPerson alloc] init];
person.name = string;// 可以改變person.name的值,因?yàn)槠鋬?nèi)部沒(méi)有生成新的對(duì)象
[string appendString:@" hans"];
NSLog(@"name = %@", person.name);