3
我的项目使用ARC。我用下面的代码进行测试:__在Xcode 4.2中的ARC和autorelease池
NSString __weak *string; @autoreleasepool { string = [NSString stringWithString:@"AAA"]; } NSLog(@"string: %@", string);
我认为它输出:
string: (null)
但它实际上输出:
string: AAA
我不明白。 __weak有什么影响?
编辑:
而下面这段代码:
NSString __weak *string; NSString __strong *str; @autoreleasepool { str = [NSString stringWithFormat:@"%@", @"AAA" ]; string = str; } NSLog(@"string: %@", string);
它还输出:
string: AAA
你的解释是完美的。但我在编辑中还有一个问题。请解释我! –
好的,我已经更新了它。 –
非常感谢! –