ARC - 分配成强大的财产。泄漏?

时间:2011-11-17 20:23:24

标签: objective-c cocoa memory-management automatic-ref-counting

在ARC中,它是否会在alloc

中向@property (strong)创建内存泄漏
// MyClass.h
@property (strong) NSString *myString;

// MyClass.m
@synthesize myString=_myString;

- (void)viewDidLoad
{
    self.myString = [[NSString alloc] initWithFormat:@"Test %@", otherString];
}

我知道在手动内存管理中,等效会产生泄漏

// MyClass.h
@property (retain) NSString *myString;

// MyClass.m
@synthesize myString=_myString;

- (void)viewDidLoad
{
    self.myString = [[NSString alloc] initWithFormat:@"Test %@", otherString];
}

- (void)dealloc
{
    [_myString release];
}

ARC是否能够正确处理顶级示例?它是否优化了其中一个保留?或者也许在dealloc中发布两次?

1 个答案:

答案 0 :(得分:16)

这在ARC下完全有效。

我建议您阅读ARC文档,以便更加信任它所提供的功能。 http://clang.llvm.org/docs/AutomaticReferenceCounting.html和Mike Ash有一篇关于它如何运作的博文({3}}