在下面的示例中,是复制tostringWithString:(NSString *)的内存地址/位置还是实际上将数据复制到to ?theNamenametheNamename
@interface AddressCard:NSObject
-(void)setName:(NSString *)theName;
@end
@implementation AddressCard
NSString *name;
-(void)setName:(NSString *)theName
{
if(name!=theName)
name = [NSString stringWithString:theName];
}
@end
如果我将代码更改为以下代码,有什么copy不同?
@interface AddressCard:NSObject
@property (copy, nonatomic) NSString *name;
@end
@implementation AddressCard
@synthesize name;
@end
一般来说,copy(@property属性)是复制数据的地址还是将数据从一个变量复制到另一个变量?如果是后一种情况,当变量代表大数据时,我们不是消耗很多内存吗?
感谢您的时间和回复!