我正在使用 Evernote API,并且我创建了一个帮助类,该类将包含 Evernote API 特定的方法,以尽可能保持代码抽象。
但是需要从视图控制器调用一种方法来显示登录表单,以及在发生错误时显示警报视图。这是代码:
- (IBAction)loginToEvernote:(id)sender {
EvernoteSession *session = [EvernoteSession sharedSession];
[session authenticateWithViewController:self completionHandler:^(NSError *error) {
if (error || !session.isAuthenticated) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Could not authenticate"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
} else {
}
}];
}
在我看来,“authenticateWithViewController:completionHandler”方法需要在视图控制器中,以便显示包含登录信息的模式视图控制器。
同样,这是来自 API 的方法,所以我无法更改它。
如何将此方法移至帮助程序类?起初我想到了委托,但我已经让这个视图控制器成为助手类的委托,以便向它发送其他错误消息,并且让助手类和视图控制器委托对我来说似乎是代码异味,如果它是甚至可能。