@Brian, Questo può essere ok, ma setProtocolForProxy:
è solo per l'ottimizzazione. il cocoafan potrebbe imporlo per la sua soluzione, ma non sarebbe un rimpiazzo. Dovresti essere in grado di ottenere automaticamente le firme. Per fare ciò, il protocollo di rete ha bisogno di un modo per richiedere la firma.
Credo che la soluzione qui sia includere nel protocollo di rete un metodo "firma del metodo di richiesta" e farlo eseguire methodSignatureForSelector:
sull'oggetto distante e codificare e restituire il risultato. Questo è ciò che fa NSDistantObject
.
Fornire setProtocolForProxy:
è un'importante ottimizzazione se chiacchierai molto, ma ti limita agli oggetti per i quali disponi di un protocollo e prima del 10.5 che introduce alcune fastidiose limitazioni (sono richiesti tutti i metodi). Anche a 10.5, potrebbe introdurre alcune limitazioni problematiche se è l'unico modo per ottenere le firme dei metodi.
@cocoafan, penso che probabilmente hai ragione di crearlo da zero sopra NSProxy
, ma dai un'occhiata a NSConnection
e vedi se riesci a sottoclassarlo per gestire la connessione di rete nel modo desiderato. Se riesci a trovare un modo per farlo (anche se non vedo subito un modo facile), probabilmente riceverai molte cose gratuitamente da NSDistantObject
.
fonte
2009-06-01 22:58:49
Consiglio preso, grazie a tutti e due. Sostituirò la comunicazione con XML-RPC. Non sono sicuro che ciò sia possibile sostituendo NSConnection. – cocoafan