一个__autoreleasing修饰符的问题

我们知道,在ARC模式下,__autoreleasing修饰符要和@autoreleasepool块配合使用,在@autoreleasepool块执行完的时候,会往修饰为__autoreleasing的对象发送release消息。
假设有这么一个方法:

-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error {
    ...    
    //如果发生了错误
    *error = [[NSError alloc] initWithDomain:myAppDomain code:userCode userInfo:nil];
    return NO;
}

如果调用这个方法的时候并没有手动写上@autoreleasepool块,那么方法内部这个autorelease的*error,它对应的@autoreleasepool块应该是哪个呢?
是main函数里的@autoreleasepool块?还是另外有隐藏的@autoreleasepool块?

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题