我正在尝试在iOS上实现具有自动引用计数的自定义属性。
我的.h
文件:
@interface AObject : NSObject
@property(nonatomic,copy) NSString* str;
@end
我的
.m
文件:@implementation AObject
@synthesize str = _str;
-(void)setStr:(NSString *)str {
if (![_str isEqualToString:str]) {
// Which one is right?
_str = [str copy]; //(1)
_str = str; //(2)
}
}
@end
我应该使用两条线(1)和(2)中的哪一条?我对它们都进行了测试,两者似乎都可以工作。有区别吗?
最佳答案
ARC只会自动进行保留,不会进行复制。如果您希望复制它,那么(1)是正确的。
关于objective-c - 如何在iOS上使用ARC实现自定义副本属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11026055/