3

私はあなたがサーバーにログインするiphoneアプリケーションを開発しています、そしてあなたが検証を得た後、私のアプリはあなたがあなたのgps位置を送るためにボタンを使うことができる別のviewcontrollerにあなたを動かします。何らかの理由で、次のビューコントローラのボタンを押すと、次のエラーが発生します。

Administrator[3148:c07] -[UIViewController SendGPS:]: unrecognized selector sent to instance 0x88b58d0
2013-01-08 16:01:21.662 Administrator[3148:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController SendGPS:]: unrecognized selector sent to instance 0x88b58d0'

1つのビューコントローラーにgpsコードボタンを適用すると正常に機能することがわかりますが、2つのビューコントローラーでアプリを使用すると、最初のビューコントローラーが2番目のビューコントローラーにリダイレクトされます(サーバーにログインしている場合のみ)。この間違い。サーバーからの応答を確認するという条件で、2番目のビューコントローラーに移動します。これは私がviewcontrollersを変更するために使用するコードです:

NSString *compare = [NSString stringWithFormat:@"true"];

    if ( [compare isEqualToString:string])  {

        UIViewController* FourthViewController = [[UIViewController alloc] initWithNibName:@"FourthViewController" bundle:[NSBundle mainBundle]];
        [self.view addSubview:FourthViewController.view];   }
    else
        NSLog(@"validation not complete");

これは、NSTimerを使用するボタンです。

-(IBAction)SendGPS:(id)sender
 {
     Timer= [NSTimer scheduledTimerWithTimeInterval:30.0 target:self  selector:@selector(requestIt) userInfo:nil repeats:YES];
 }

何かご意見は?前もって感謝します!

4

2 に答える 2

7

コードの間違った部分は明らかです。View Controller を初期化する方法は次のとおりです。

    UIViewController* FourthViewController = [[UIViewController alloc] initWithNibName:@"FourthViewController" bundle:[NSBundle mainBundle]];

そしてそれは、メソッドが何であるかチャック・ノリスのアイデアを持たない、Appleのコードから新鮮な新しいView Controllerオブジェクトを作成していSendGPS:ます。Xcode プロジェクトにFourthViewController実装する' ' という名前の新しいビュー コントローラー サブクラスを明らかに作成したためです。SendGPS:' ' というインスタンスを作成していますFourthViewControllerが、実際にはそのクラスを指していませんUIViewController。指定したクラスです。

正しいコードは次のとおりです。

    FourthViewController *myFourthViewController = [[FourthViewController alloc] initWithNibName:@"FourthViewController" bundle:[NSBundle mainBundle]];

あなたは本当にそれを理解する必要があります.Objective-Cを理解し、本を手に取り、読んで、それを正しく行うとは思いません.

于 2013-01-08T14:24:14.150 に答える
0

交換

UIViewController* FourthViewController = [[UIViewController alloc] initWithNibName:@"FourthViewController" bundle:[NSBundle mainBundle]];

FourthViewController* FourthViewController = [[FourthViewController alloc] initWithNibName:@"FourthViewController" bundle:[NSBundle mainBundle]];

SendGPS.h ファイルで関数を宣言したかどうかも確認してください

それがあなたを助けることを願っています

于 2013-01-08T14:26:38.550 に答える