我的项目使用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