@Brian, może być ok, ale setProtocolForProxy:
służy tylko do optymalizacji. cocoafan mógłby zlecić to rozwiązanie, ale nie byłby to zamiennik zastępczy. Powinieneś mieć możliwość automatycznego otrzymywania podpisów. Aby to zrobić, protokół sieciowy potrzebuje sposobu na żądanie podpisu.
Uważam, że rozwiązaniem jest włączenie w protokole sieciowym metody "podpisu metody żądania" i zlecenie jej uruchomienia na odległym obiekcie i zakodowanie i zwrócenie wyniku. Tak robi NSDistantObject
.
Zapewnienie setProtocolForProxy:
jest ważną optymalizacją, jeśli zamierzasz dużo rozmawiać, ale ogranicza się do obiektów, dla których masz protokół, a przed 10.5 wprowadza pewne irytujące ograniczenia (wszystkie metody są wymagane). Nawet w wersji 10.5 może wprowadzić pewne problematyczne ograniczenia, jeśli jest to jedyny sposób uzyskania sygnatur metod.
@ cocoafan, myślę, że prawdopodobnie masz rację, aby stworzyć to od podstaw na NSProxy
, ale spójrz na NSConnection
i zobacz, czy możesz podklasować go do zarządzania połączeniem sieciowym, tak jak chcesz. Jeśli możesz znaleźć sposób na zrobienie tego (chociaż nie widzę łatwej drogi od razu), prawdopodobnie dostaniesz dużo rzeczy za darmo od NSDistantObject
.
Porady zrobione dzięki wam. Zamienię komunikację na XML-RPC. Nie jestem pewien, czy jest to możliwe przez nadpisanie NSConnection. – cocoafan