在执行涉及 Objective-c 块的递归时,我在我的 iOS 应用程序中收到 EXC_BAD_ACCESS 信号。这是简化的代码:
- (void)problematicMethod:(FriendInfo*)friendInfo onComplete:(void(^)(NSString*))onComplete1 {
[self doSomethingWithFriend:friendInfo onComplete:^(Response* response) {
switch (response.status) {
case IS_OK:
onComplete1(message);
break;
case ISNT_OK:
// Recursively calls the method until a different response is received
[self problematicMethod:friendInfo onComplete:onComplete1];
break;
default:
break;
}
}];
}
所以基本上,有问题的方法,在这个简化版本中,调用doSomethingWithFriend:onComplete:。当该方法完成时(onComplete),如果一切正常,则调用原始的onComplete1块,这工作正常。
但是如果出现问题,需要再次调用problemMethod(递归部分),当第一次发生这种情况时,我会立即收到EXC_BAD_ACCESS 信号。
任何形式的帮助将不胜感激。