@Brian, Esto puede estar bien, pero setProtocolForProxy:
es solo para la optimización. cocoafan podría ordenar su solución, pero no sería un reemplazo inmediato. Se supone que debes poder obtener las firmas automáticamente. Para hacer eso, el protocolo de red necesita una forma de solicitar la firma.
Creo que la solución aquí es incluir en el protocolo de red un método de "firma de método de solicitud", y ejecutarlo methodSignatureForSelector:
en el objeto distante y codificar y devolver el resultado. Eso es lo que hace NSDistantObject
.
Proporcionar setProtocolForProxy:
es una optimización importante si va a parlotear mucho, pero lo restringe a objetos para los que tiene un protocolo, y antes de 10.5 que presenta algunas limitaciones molestas (se requieren todos los métodos). Incluso en 10.5, puede presentar algunas limitaciones problemáticas si es la única forma de obtener firmas de métodos.
@cocoafan, creo que es probable que tenga razón para crear esto desde cero en la parte superior de NSProxy
, pero eche un vistazo a NSConnection
y vea si puede subclase para administrar la conexión de red de la manera que desee. Si puede encontrar una manera de hacerlo (aunque no veo una manera fácil de hacerlo), probablemente obtendrá muchas cosas gratis en NSDistantObject
.
Consejo tomado, gracias a los dos. Reemplazaré la comunicación con XML-RPC. No estoy seguro si esto es posible anulando NSConnection. – cocoafan