在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中发布两次?
答案 0 :(得分:16)
这在ARC下完全有效。
我建议您阅读ARC文档,以便更加信任它所提供的功能。 http://clang.llvm.org/docs/AutomaticReferenceCounting.html和Mike Ash有一篇关于它如何运作的博文({3}}