在下面的示例中,是复制tostringWithString:(NSString *)
的内存地址/位置还是实际上将数据复制到to ?theName
name
theName
name
@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
属性)是复制数据的地址还是将数据从一个变量复制到另一个变量?如果是后一种情况,当变量代表大数据时,我们不是消耗很多内存吗?
感谢您的时间和回复!