UIAlertView を作成するメソッドを持ち、UIAlertView Delegate メソッドを実装する viewController クラス A と、ロギングとネットワークを処理するための NSObject モデル クラス B があります。クラスBで、Aクラスのインスタンスを割り当てただけで、Aのメソッドを呼び出します。アラートビューは正常に表示されましたが、[OK]ボタンをクリックすると、クラッシュしました。「OK」ボタンをクリックしてキーボードを再度開き、ユーザーが失敗した後もログインを続行できるようにします。(ヘッダー ファイルで UIAlertView プロトコルを宣言していました。)
ビューコントローラークラス A:
- (void)displayAlertViewString:(NSString *)string
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failured!"
message:string
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Ok", nil];
[alert show];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if ([title isEqualToString:@"Ok"])
{
//reopen the keyboard let user continue login.
[self.passwordField becomeFirstResponder[;
}
failure block
モデル クラス B では、 ofで display alert ビュー メソッドを呼び出しましたAFNetworking
。
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"%@", error);
RDLoginViewController *loginViewController = [[RDLoginViewController alloc] init];
[loginViewController displayAlertViewString:@"The entered email or password was incorrectly!"];
デバッガーには情報がありません。Xcode はスレッド ビューにとどまっています。誰でも私がそれを理解するのを手伝ってくれますか? ありがとう。