我的项目使用ARC。我用下面的代码进行了测试:
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