对象声明为
@interface MyClass : NSObject
@property (atomic, copy) NSMutableString *name;
@end
定义为
@implementation MyClass
@synthesize name;
@end
调用
MyClass *m = [[MyClass alloc] init];
NSMutableString *s = [[NSMutableString alloc] initWithString:@"Hello"];
[m setName:s];
NSLog(@"%p", [m name]);
NSLog(@"%p", [m name]);
NSLog(@"%p", [m name]);
如果说copy每次返回的对象对于可变字符串都是深拷贝的话,为什么打印的地址是一样的?
过去多啦不再A梦2017-05-02 09:37:32
copy
은 값을 할당할 때 복사 작업을 의미합니다. s
의 주소를 다시 인쇄해 볼 수 있습니다.
ps: 가변 유형 속성 사용 copy