我正在尝试在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/

10-10 02:37