这是我的代码:
void autoreleasingReturn (NSError * __autoreleasing *error)
{
// --- Crashing
*error = [[NSError alloc] init];
// --- Not crashing
// *error = [NSError errorWithDomain:@"hello"
// code:-1
// userInfo:@{}];
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSError __strong *error = nil;
autoreleasingReturn(&error);
NSLog(@"error: %@", error); // crash!
}
return 0;
}
痕迹(对不起,不能复制粘贴):
问题是:发生了什么事?
我需要有关此代码中发生的情况的详细信息。真的很有趣......仪器没有显示任何泄漏,僵尸等。