【发布时间】:2014-08-17 16:22:26
【问题描述】:
我知道,在 ObjC 类中设置实例变量(例如 NSString 变量)时,确保类拥有自己的变量通常是最佳实践,例如:
NSString *someInstanceVariable = [NSString stringWithString: someNSStringObject];
我的问题是,这与以下(实际上)有什么不同吗?
NSString *someInstanceVariable = [someNSStringObject copy];
【问题讨论】:
-
最终结果是一样的。如果
someNSStringObject真的是一个可变字符串,两者都会保护你。 -
如果您使用的是非 ARC 代码库,
stringWithString:会返回一个自动释放的值,而copy不会。除此之外真的没有任何区别。 -
rmaddy 和 BergQuester - 正如我所怀疑的那样,但想检查一下。谢谢!
标签: objective-c cocoa nsstring instance-variables