我在传播NSErrors
NSOperation
main
方法中创建的@interface FooOperation()
@property (nonatomic, strong) NSError * error;
@end
@implementation FooOperation
- (id) initWithError:(NSError * __autoreleasing *) error
{
self = [super init];
if (self) {
_error = * error;
}
return self;
}
- (void) main
{
NSError * innerError = nil;
@autoreleasepool {
// Call some methods, such as:
[self someMethodWithError:&innerError];
if (innerError) { // many of them can throw errors
_error = innerError; // _error is set just fine here
return;
}
// call some other methods...
}
}
@end
时遇到了一些麻烦。
NSOperationQueue * opQueue = [[NSOperationQueue alloc] init];
NSError * error = nil;
FooOperation * operation = [[FooOperation alloc] initWithError:&error];
[operation setCompletionBlock:^{
if (error) {
// never happens, error is always nil here!
}
}];
[opQueue addOperation:operation];
我会尝试使用此操作并得到如下错误:
errors
在大多数这些UIAlertView
之后,我会制作一个NSOperation
来说明问题所在以及可能的恢复解决方案。我从ViewController
内部知道我可以打电话给主队列,只是从那里显示警报,但是我想从我的{{1}}调用这样的东西来保持UI代码在一个地方
编辑:我想我想要做的就是在Java或C#中如何从操作中抛出异常,并在视图控制器中捕获它以显示我的错误消息