#import <Foundation/Foundation.h>
/*
Copy Properties Maintain Their Own Copies
*/
@interface Person: NSObject
@property NSString *firstName;
@property NSString *lastName;
@end
/* 如下的赋值,由于firstName是一个不可变的,但是赋值后,如果mutableString修改了,
firstName的值也会发生变化,这样与最初的定义不符合。 */
NSMutableString *mutableString = [NSMutableString stringWithString:@"Jhon"];
person.firstName = mutableString
/* 为了解决这个问题,可以使用copy修饰符号 */
@interface Person: NSObject
@property (copy) NSString *firstName;
@property (copy) NSString *lastName;
@end
/* 这样定义以后,用mutableString给firstName赋值的时候,会拷贝一分新的对象给firstName
这样,以后mutableString的任何变化都不会影响到firstName,因为赋值给firstName时
是拷贝一个新的对象,所以不能使用weak,否则就赋值不成功的。 */