2012-01-18 11 views
-1

私は、DataViewControllerと呼ばれるサブビューと、RootViewControllerと呼ばれる親ビューコントローラを持っています。インスタンスに送信された親子の認識できないセレクタ

エラー:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPageViewController setDetailsDataObject:]: unrecognized selector sent to instance 0x6aa2df0'

コード:

毎回関数を呼び出すか、私のサブビューから、私RootViewControllerで定義されているプロパティを設定しようとしている、私はこれらのエラーを取得しますRootViewController.h:

@property (strong, nonatomic) id detailsDataObject; 

DataViewController.m:

((RootViewController *)self.parentViewController).detailsDataObject = self.dataObject; 

そして...

エラー:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPageViewController showDetails]: unrecognized selector sent to instance 0x6880db0'

コード:

RootViewController.h:

- (void)showDetails; 

RootViewController.m:

- (void)showDetails 
{ 
    NSLog(@"Hello"); 
} 

DataViewController.m:

[((RootViewController *)self.parentViewController) showDetails]; 

は、誰もがこれらの例外を修正する方法を知っていますか?

答えて

1

self.parentViewControllerが実際にRootViewControllerのインスタンスであるかどうかを確認するためにNsaasert文を行う

NSAssert([self.parentViewController isKindOfClass:[RootViewController class]], @"Not RootViewController"); 

任意のスペルミスがあるかどうthis..correct試してみてください。

+0

私はxcodeとiOSの開発には全く新しいので、NSAssertやその使い方については聞いたことがありません。もう少しお手伝いできますか? – user1026090

+0

私の答えをもう一度チェック..編集しました – Shubhank

+0

アサーションに失敗しました:アサーションエラー - [DataViewController handleSingleDoubleTap:]、/Users/kevincuppens/Desktop/Catalogus/Catalogus/DataViewController.m:83 2012-01- 19:08:42:47.935 Catalogus [6063:f803]キャッチされていない例外 'NSInternalInconsistencyException'のためアプリを終了しています、理由: 'Not RootViewController' – user1026090