在这3例中我会有内存泄漏吗?
否 __ strong 且未设置为nil
- (void)function {
NSString *string = [[NSString alloc] initWithString: @"Hello World"];
}
没有设置为nil但使用 __ strong
- (void)function {
__strong NSString *string = [[NSString alloc] initWithString: @"Hello World"];
}
否 __ strong ,但设置为
- (void)function {
NSString *string = [[NSString alloc] initWithString: @"Hello World"];
string = nil;
}
使用自动引用计数(ARC),如果我没有设置任何关键字,我认为该变量是 __ strong ?
答案 0 :(得分:6)
如果您未指定所有权限定符,则隐式__strong
。然后,在声明变量的本地作用域的末尾,无论是否将变量设置为nil,编译器都会插入一个释放。
因此,在所有三种情况下都释放了您的局部变量 - 没有泄漏。