__block NSString *x = @"123"; // x lives in block storage
void (^printXAndY)(NSString*) = ^(NSString *y) {
x = [x stringByAppendingString:y];
printf("%@ %@\n", x, y);
};
printXAndY(@"456");
苹果文档说:
__block 存储类型 您可以通过应用 __block 存储类型修饰符来指定导入的变量是可变的(即读写)。
如果x
是可变的,这不是x = [x stringByAppendingString:y];
错的吗?并会导致内存泄漏?