我已经测试了以下代码。
// Employee.h
@interface Employee : NSObject
@end
// Employee.m
@implement Employee
@end
// main.m
int main() {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
Employee* john = [[Employee alloc] init];
void (^print)(void) = ^{
NSLog(@"employee = %@", john);
}
[john release];
[pool release];
return 0;
}
我使用仪器跟踪了 john 的引用计数,但打印块中 john 的引用计数似乎没有增加。
我认为约翰应该被捕获并保留在打印块中。
我有什么误解?