sudzc как использовать возвращенный объект из вызова ws

#objective-c #sudzc

#objective-c #sudzc

Вопрос:

Сгенерированная sudzc заглушка является:

(void)HandleSearchResult: (id) value { ...

В документе указано, что «значение» может быть приведено в (SDZSearchItemsByUpcResponse *) . Однако это было неверно.

В XCode тип «значения», по-видимому, __NSCFDictionary .

Ответ №1:

__NSCFDictionary является конкретным подклассом либо NSDictionary , либо NSMutableDictionary . Обработайте вот так:

 -(void)handleSearchResult:(id)value {
    NSDictionary* dict = value;
    NSLog(@"value is: %@", dict);
    // Do what you want with your dictionary
}
  

Я бы пропустил SudzC и использовал CWXMLTranslator из https://github.com/jayway/CWFoundation. Это позволяет игнорировать большую часть ошибок в ответах SOAP XML и преобразуется непосредственно в соответствующие объекты домена, а не в словари и другие заполнители.

Комментарии:

1. уважаемый ПейлоУ, не могли бы вы, пожалуйста, предоставить больше информации о том, почему следует пропустить SudzC и использовать CWXMLTranslator ? Я пытался связаться с вами, но не нашел ни электронной почты, ни идентификатора. заранее спасибо.

2. @MiladRk Я говорю, что лучшее объяснение того, почему вы должны использовать CWXMLTranslator, находится в этом репозитории github.com/PeyloW/CWFoundation , в нем есть образец анализатора RSS-каналов в 9 строках SDL. Если есть более простой способ обработки XML, то я хотел бы знать об этом.