Ich habe eine Klasse Request
, die eine Callback-Block-Eigenschaft haben soll, rufen Sie uns RequestCallback
.Eigenschaft verweist auf eine gemeinsame Schnittstelle für zwei Blöcke
Die Anfrage selbst sollte nicht verwendet werden, aber sie hat zwei Unterklassen. APIRequest
und HttpRequest
. (Ja, in diesem Fall gibt es einen Unterschied).
Die Callback-Blöcke sind unterschiedlich für APIRequest
und HttpRequest
, nennen wir sie APIRequestCallback
und HttpRequestCallback
.
Blockdefinitionen:
typedef void (^HttpRequestCallback)(HttpResponse *);
typedef void (^APIRequestCallback)(APIResponse *);
Ich habe keine Möglichkeit zu lassen, meine Anfrage Klasse haben eine Callback-Eigenschaft gefunden, die entweder APIRequestCallback
oder HttpRequestCallback
Typ sein kann.
Ich kann mir vorstellen, wie dies getan werden kann, aber ich habe nichts gesehen, was es bedeutet. Beispiele hierfür wären meine Rückruf Objekt als id
, Vermietung APIRequestCallback
und HttpRequestCallback
erweitern eine definierte RequestCallback
usw.
// Can be either HttpRequestCallback or APIRequestCallback
@property (copy) RequestCallback callback;
// or
@property (strong) id callback;
// or
@property (strong) id <RequestCallback> callback;
Hat einige qualifizierte Ziel C-Entwickler haben eine Lösung für dieses Problem sein zu speichern?