Как получить данные с сервера без разбора? - PullRequest
1 голос
/ 04 августа 2011

Я занимаюсь разработкой приложения, которое в значительной степени основано на внутренних данных, поступающих с сервера базы данных. Я использую сервер MySQL.

Тем не менее, я получаю данные с помощью синтаксического анализа XML и JSON. Но я хочу знать, есть ли какой-либо способ или структура, которая позволяет извлекать данные без какого-либо анализа, такого как создание соединения, а затем по запросу мы получаем данные в наборе данных (как в .NET)?

Спасибо ...

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Я думаю, что вы говорите о нативном типе данных, который будет принят iOS без разбора его на нативные структуры.Я предлагаю вам отправить ответ от серверной части в формате plist , и на уровне приложения вы можете использовать его как собственный объект данных.

1 голос
/ 04 августа 2011

Для большинства моих потребностей в синтаксическом анализе XML на iOS я использую свой класс CWXMLTranslator, который доступен как открытый исходный код на https://github.com/jayway/CWFoundation.. Он использует небольшой DSL для перевода XML в объекты Objective-C.

В основном переворачивая XML, как это:

<foo code="42">
    <name>Saturnus</name>
    <next_url>http://apple.com</next_url>
</foo>

В объект домена, как это:

@interface Foo { }
@property(nonatomic, assign) NSInteger code;
@property(nonatomic, copy) NSString* name;
@property(nonatomic, retain) NSURL* nextURL;
@end

В нечто простое:

NSArray* response = [CWXMLTranslator translateContentsOfURL:fooURL
                                       withTranslationNamed:@"FooRequest"
                                                   delegate:nil
                                                      error:NULL];

Где переводом будет файл с именем FooRequest.xmltranslation, содержимое которого будет выглядеть примерно так:

foo +> @root : Foo {
    .code >> code : NSNumber;
    name >> name;
    next_url >> nextURL : NSURL;
}

Это немного больше работы, чем «автоматические» инструменты в .net, но достаточно простые для обработки самых сложных SOAP или WCF.

Существует обширный CWXMLTranslatorDelegate протокол для обработки выделенных более сложных случаев, а также странных преобразований типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...