如何从服务器检索数据而不进行任何解析?

时间:2011-08-04 13:39:44

标签: iphone mysql objective-c ios4

我正在开发一个严重基于来自数据库服务器的后端数据的应用程序。我正在使用mySQL服务器。

然而,我通过XML和JSON解析获取数据。但我想知道有没有任何方法或框架能够在不创建连接的任何解析中检索数据,然后通过查询我们将获得数据集中的数据(如在.NET中)?

...谢谢

2 个答案:

答案 0 :(得分:2)

我认为你谈论的是本机数据类型,它将被iOS接受,而不会将其解析为原生结构。我建议您以 plist 格式从后端发送响应,在应用级别,您可以将其用作本机数据对象。

答案 1 :(得分:1)

对于我在iOS上的大部分XML解析需求,我使用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中的“automagic”工具要做的工作要多一些,但要足够简单,可以处理最复杂的SOAP或WCF。

有一个广泛的CWXMLTranslatorDelegate协议用于处理分配更复杂的案例,以及奇怪的类型转换。