2013-04-04 71 views
3

我正在创建一个由几个UITableViewControllers组成的简单iOS应用程序。显示在视图控制器中的信息将来自xml文件(我将包含在项目的资源中或直接从保存箱或iCloud中包含)。 xml文件的内容将基于用户输入。从iphone中的核心数据生成和解析XML

几点说明:

这些数据是基于用户输入手段而非静态的。理想情况下,应用程序会将数据从xml文件加载到“Core Data”中。 每次额外的应用程序运行只会从某些核心数据源(我还不完全熟悉)中取出数据,而不是从文本文件重新加载数据。

现在我使用的XmlWriter生成简单的XML文件

请指引我 谢谢

+0

Ÿ做ü需要在本地生成XML,如u说ü会收到来自服务器/云..ü需要只解析收到的XML和保存到数据库,只是查询使用coredata&分贝在tableview中显示.. – vishy 2013-04-04 05:15:05

+0

@vishy,因为首先我需要基于用户输入编程生成xml,然后我将它发送到服务器 – 2013-04-04 05:20:42

+0

为服务器请求生成xml它会很容易,只需使用格式化的'NSString '方法,因为所有的xml节点都是静态的.. – vishy 2013-04-04 05:24:28

回答

2

这里最好的模式似乎是使用XML文件中的“种子”的核心数据的数据库。这只发生在第一次。之后,您将永远不会再使用您的XML文件,只需更新并同步您的核心数据存储。

这比生成XML要好得多。 XML文件(如属性列表)的问题是您必须为每个小的增量更改编写整个文件。如果你在网上某个地方同步到商店,这可能需要太多时间才能实用。

假设您可以从XML文件获取基础对象,只需遍历该对象并逐个插入Core Data。

for (NSDictionary *dict in xmlArray) { 
    Entity *newObject = [NSEntityDescription 
     insertNewObjectForEntityForName:@"Entity" 
       inManagedObjectContext:self.managedObjectContext]; 
    newObject.attribute1 = [dict objectForKey:@"attribute1"]; 
    newObject.attribute2 = [dict objectForKey:@"attribute2"]; 
    // etc... 
} 
[self.managedObjectContext save:nil]; 
+0

请详细说明您的答案,因为我是核心数据的初学者,对我来说它有点复杂 – 2013-04-04 07:15:35

+0

您知道如何从XML文件中获取对象吗? – Mundi 2013-04-04 07:21:06

+0

是的,我知道,我试图获得所有的对象,并使其字符串 – 2013-04-04 07:22:19