0

prepareForSegue 中にプロパティに値を代入しようとすると、エラーが発生します

2012-05-09 23:14:22.122 LeakSpotter[17709:15b03] *キャッチされない例外 'NSInvalidArgumentException' によるアプリの終了、理由: '-[UIViewController setCoordLong:]: 認識されないセレクターがインスタンス 0xa86e930 に送信されました'

ヘッダ:

@property (nonatomic, retain) NSString *CoordLong;
@property (nonatomic, retain) NSString *CoordLat;

それらは合成されています。

-(void)prepareForSegue:(UIStoryboardSegue *)segue 送信者:(id)送信者{

NSLog(@"Fired segue %@", [segue identifier]);
if([[segue identifier] isEqualToString:@"returnToLeakSpotter"]){
    NSLog(@"Return to leak spotter segue...");
    //ContactsViewController *cvc = (ContactsViewController *)[segue destinationViewController];

}else if ([[segue identifier] isEqualToString:@"gotoTakePhoto"]) {
    NSLog(@"Go to photo view");
    takePhotoViewController *takePhotoC = [segue destinationViewController];

    takePhotoC.CoordLong = @"-9.88";
    takePhotoC.CoordLat = @"45.45";

明らかな何かを見逃しましたか?

ありがとう

4

2 に答える 2

4

ストーリーボードの takePhotoViewController にビュー コントローラーのサブクラスを設定していないように見えるため、CoordLat が何であるかを認識しないベース UIViewController (エラーに表示される) をインスタンス化しています。

ちなみに、慣例により、クラス名は大文字で始まり、変数/プロパティは小文字で始まりますが、逆になっているようです。

于 2012-05-09T22:38:43.963 に答える
0

destinationViewController はデフォルトで UIViewController を返すため、viewController をキャストする必要がある場合があります。

takePhotoViewController *takePhotoC = (takePhotoViewController *)[segue destinationViewController];
于 2012-05-09T23:25:39.740 に答える