У меня есть приложение для iPhone, которое использует HessianKit для общения с моим Java-сервером. Несколько методов, которые я использую, возвращают пользовательские объекты, и я не смог выяснить, как заставить их загружаться как правильный объект на стороне iPhone.
Вот в основном то, что у меня есть:
в Java:
public class QRSet implements Serializable{
{
protected Pagination pagination;//another custom class
protected int resultSetSize;
protected List results;
//...standard getters, setters, and constructors...
}
В объективе-c
@protocol QRSet <NSObject>
@property (strong, atomic) id<Pagination> pagination;
@property int resultSetSize;
@property (strong, atomic) NSArray * results;
//...not sure how I would need to do getters and setters here...
@end
Изначально у меня была целевая версия c в качестве собственного класса вместо протокола, но я обнаружил, что в методе сопоставления произошли изменения, и теперь ему требуется этот формат:
[CWHessianArchiver setClassName:@"com.test.queries.QRSet" forProtocol:@protocol(QRSet)];
Вот как я называю свою службу:
id<QRSet> qrSet = [self.proxy doPaginatedList:token :filter :startingIndex];
Однако здесь я застрял. Если я вызову свой метод для возврата QRSet, я все равно получу только объект NSDictionary. Кто-нибудь знает, какие шаги мне не хватает, чтобы заставить его воссоздать объект QRSet на стороне клиента?