コールバックブロックプロパティを持つクラスRequest
があります。RequestCallback
と呼びます。2つのブロックの共通インターフェイスを参照するプロパティ
要求自体は使用すべきではありませんが、2つのサブクラスがあります。 APIRequest
およびHttpRequest
。 (はい、この場合は違いがあります)。
APIRequest
とHttpRequest
のコールバックブロックが異なる場合は、APIRequestCallback
とHttpRequestCallback
とコールすることができます。
ブロック定義:
typedef void (^HttpRequestCallback)(HttpResponse *);
typedef void (^APIRequestCallback)(APIResponse *);
私は私の要求クラスがどちらかAPIRequestCallback
またはHttpRequestCallback
タイプのものとすることができる1つのCallbackプロパティを持ってみましょうする方法を発見していません。
私はこれを行う方法を考えることができますが、私はそれを暗示する何も見ていません。例としては、id
として私のコールバックオブジェクトを格納APIRequestCallback
とHttpRequestCallback
が延長まかせだろう定義されRequestCallback
など
// Can be either HttpRequestCallback or APIRequestCallback
@property (copy) RequestCallback callback;
// or
@property (strong) id callback;
// or
@property (strong) id <RequestCallback> callback;
いくつかの熟練した客観C開発者はこれに対する解決策を持っていますか?