2011-12-29 21 views
-2

私は2つのオブジェクトクラスを持っています。クラスAとクラスB 私のappdelegate.mでは、クラスAのメソッドにアクセスできますが、クラスBはアクセスできません。理由はわかりません。 appdelegate.mappdelegateのオブジェクトクラスからメソッドを呼び出す方法は?

.... .... ....

-(void)classAMethod:(classA *)classAObj { 

    [classAObj classAMethod]; 
} 

-(void)classBMethod:(classB *)classBObj { 

    [classBObj classBMethod]; 
} 

.... .... ....

私のVCクラスでは、私はこのコードをタイプしました:

.... .... ....

myAppDelegate *appDelegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate]; 

[appDelegate classAMethod:classAObj]; 

[appDelegate classBMethod:classBObj]; 

.... .... ....

それだけで私はクラスBでメソッドにアクセスするにはどうすればよいクラスAのメソッドにアクセスすることができますか?誰も助けることができますか?ありがとう。 *詳しいことが分からない場合は、もう一度教えてください。

+0

[appDelegate classAMethod:classAObj]; [appDelegate classBMethod:classAObj]; //ここでclassBObjectを渡す必要があります – Tendulkar

+0

classBMethodをクラスBインタフェースで宣言しているかどうか確認してください。 –

+0

どうしますか?あなたはクラッシュ、コンパイラエラー、または何かを得るか?これは実際には実際のコードですか? – jrturton

答えて

1

classB objの代わりにclassA objを次の行に渡しています。

[appDelegate classBMethod:classAObj]; 

を確認してください。

0
[appDelegate classAMethod:classAObj]; 

[appDelegate classBMethod:classAObj]; //here you need to pass the classBObject 
+0

それは私のタイプミスです、それについて申し訳ありません。私はそれをclassBObjectに変更しましたが、それでもクラスBのメソッドにアクセスできませんでした。 – GURU

1

あなたは言語を使いたくないようです。 "classAMethod"を見て、それをappDelegate.mで宣言すると、appDelegateクラスに属します。 classMethod本体では、このメソッドを実装していないClassAObjオブジェクトに対してメソッド(再帰呼び出し)を呼び出します。あなたは実際にオブジェクトclassAObjに応答できないメッセージを送ります。いずれにせよ、あなたは本当に面倒なコードを持っています...

+0

私の意図は、独自のメソッドと目的を持つ2つのオブジェクトクラスを持つことです。私は将来このクラスを再利用したいと思っています。私はそれをより良くすることができますか? – GURU

0

アプリケーションデリゲートに関係する点は何ですか?あなたがやっているように見えるすべてはあなたが渡しているオブジェクトの同じメソッドを呼び出している理由だけません:。

[classAObj classAmethod]; 

を直接あなたのビューコントローラに?あなたが達成しようとしていることは明確ではありません。

関連する問題