自分自身を返さない方法を追加しようとしました。このメソッドは辞書を返すためです
-(NSMutableDictionary*) getResponse
{
return response;
}
。メソッド自体を返すためには、メソッドのセレクタの実装をオブジェクトself
に依頼するか、Objective-CランタイムにMethod
構造体を返すように依頼する必要があります。
しかし、それはあなたが実際にやりたいことではありませんか?
この方法でレスポンス辞書を返すことを意味するのであれば、それはまさにそれです。それは書かれているように正しいです(私の質問に私のコメントですでに説明した通り、その名前とは別に)。
...でも、データを他のクラスから引き出すことはできません。
このメソッドはデータオブジェクトを返すと主張しません。辞書オブジェクトを返すと主張する。データオブジェクトを返すと、それはバグです。
... voidを返します。
いいえ、それはNSMutableDictionary *
を返します。 void
はタイプです。他の文脈では意味をなさない。
nil
(オブジェクトなしのポインタ)が返されることを意味する場合は、返される応答辞書がありませんでした。このオブジェクトにそれがあるまで応答を要求しないでください。
レスポンスを保持するオブジェクトの委譲先をレスポンスを保持するオブジェクトの委譲者にし、応答が返ってきたときにレスポンスホルダがそのデリゲートにメッセージを送信できるようにすることができます。そのメッセージ。代案は、応答保持者がそれ自身を通過することであり、代理人は代理人メソッドの実装において応答辞書に応答辞書を尋ねる。
詳細情報:
あなたの例では何も問題はありません...あなたのクラスに 'response'が定義されていれば、これが返されます。他のクラスがそれを保持していることを確認してください! –
それには1つの問題があります:その名前。 Cocoaの命名規則に準拠するためには単に '応答 'でなければなりません。 'get'で始まるセレクタはコロンで終わっていなければなりません。また、引数は得られた値を格納するポインタでなければなりません。このメソッドはそのままですが、単に 'response'という名前にする必要があります。 –