У меня есть приложение для iPhone, которое использует HessianKit для разговора с моим java-сервером. Несколько методов, которые я использую, возвращают пользовательские объекты, и я не смог понять, как заставить их загружать как правильный объект на стороне iPhone.Пользовательские объекты с HessianKit и java backend
Вот в основном то, что у меня есть:
в Java:
public class QRSet implements Serializable{
{
protected Pagination pagination;//another custom class
protected int resultSetSize;
protected List results;
//...standard getters, setters, and constructors...
}
В Objective-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
Первоначально я имел объективную версию с в качестве своего класса вместо протокол, но я обнаружил, что произошел сбой в том, как работает метод сопоставления, и теперь он требует этого формата:
[CWHessianArchiver setClassName:@"com.test.queries.QRSet" forProtocol:@protocol(QRSet)];
Это, как я называю обслуживание:
id<QRSet> qrSet = [self.proxy doPaginatedList:token :filter :startingIndex];
Это, однако, где я застрял, если я могу сделать мой вызов метода вернуть QRSet, я до сих пор получить только NSDictionary объект. Кто-нибудь знает, какие шаги мне не хватает, чтобы заставить его воссоздать объект QRSet на стороне клиента?
Проблема может быть, что вы добавить перевод для 'QueryResultSet', но ожидать результата 'QRSet'. Это тип вопроса или тип вашего проекта? – PeyloW
QRSet был всего лишь текстом, который я использовал для этого вопроса (на самом деле это QueryResultSet на самом деле в самом коде). Однако я исправил его в своем вопросе для ясности. – cain