Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 良好的休息策略->;XML->;核心数据->;UtableView?_Iphone_Parsing_Uitableview_Core Data_Libxml2 - Fatal编程技术网

Iphone 良好的休息策略->;XML->;核心数据->;UtableView?

Iphone 良好的休息策略->;XML->;核心数据->;UtableView?,iphone,parsing,uitableview,core-data,libxml2,Iphone,Parsing,Uitableview,Core Data,Libxml2,将大量XML从RESTful服务异步拉入核心数据存储,并从该存储中动态填充UITableView的良好实践是什么 我正在考虑使用libxml2的xmlParseChunk()函数来解析传入XML的块,并在节点进入时将节点及其子节点转换为相关的托管对象 在将这些XML节点转换为托管对象的同时,我希望依次生成UITableView行。比如说,一次50行。这现实吗 根据您的经验,您如何完成此任务,以保持性能并处理可能的数千行?有不同的、更简单的方法同样有效还是更好?乔·休伊特(Facebook应用程序

将大量XML从RESTful服务异步拉入核心数据存储,并从该存储中动态填充
UITableView
的良好实践是什么

我正在考虑使用libxml2的
xmlParseChunk()
函数来解析传入XML的块,并在节点进入时将节点及其子节点转换为相关的托管对象

在将这些XML节点转换为托管对象的同时,我希望依次生成
UITableView
行。比如说,一次50行。这现实吗

根据您的经验,您如何完成此任务,以保持性能并处理可能的数千行?有不同的、更简单的方法同样有效还是更好?

乔·休伊特(Facebook应用程序开发人员)已经发布了很多开源代码。它被称为。有一个类非常适合获取internet数据并将其填充到表中,而无需事先获取数据。用于此操作的类称为和

从这里开始,存储为CoreData将不会有太大的困难,只需根据您认为适合提供的钩子对类进行子类化即可

如果你担心数据太多,一次50个听起来是合理的。这些类有一个内置的“更多”按钮来帮助您

从三个20自述文件:

支持Internet的表视图控制器
TTTableViewController和 TTTableViewDataSource帮助您 构建加载其内容的表 来自互联网。而不仅仅是 假设你已经准备好了所有的数据 就像UITableView所做的那样 默认情况下,TTTableViewController允许 当您的数据丢失时,您可以进行通信 加载,以及出现错误或 没什么可展示的。它也能帮助你 添加“更多”按钮以加载 数据的下一页,以及可选的 支持通过抖动来重新加载数据 这个装置


当然,这是一件相当标准的事情。最简单的解决方案是在一个MOC上的后台线程中进行加载,并使UI在主线程上运行,并具有自己的MOC。每当你得到一块你想要显示的数据(比如50个条目),你就有了后台MOC
save:

假设您装配了前台MOC以合并更改(通过
mergeChangesFromContextDidSaveNotification:
),那么每当您保存后台MOC时,前台MOC将获得所有这些更改。假设您使用的是NSFetchedResultsController,它有委托方法来处理其MOC中的更改,如果您使用的是Apple的示例代码,那么您可能已经正确设置了所有内容


一般来说,除非您真的知道自己在做什么,并且愿意花大量时间针对具体情况进行调整,否则CoreData将比您自己滚动的任何东西都要快。你能做的最大的一件事是确保主线程上没有阻止用户交互的慢事情(比如XML处理和同步flash I/O,这是由
保存:
)造成的。

还没有人提到吗?我的朋友们。。。说真的,你得检查一下。如果您在iOS上(现在在OSX上)使用REST做任何事情,特别是如果您想使用核心数据。。。请看一下RestKit。在iOS上实现服务器和我的核心数据模型之间的一些相当复杂的数据同步,我节省了无数个小时。RestKit让它变得如此简单,几乎让你恶心。

你可能会发现它很有用。我想我不清楚。实际上,我想填充一个核心数据存储,它反过来填充一个表视图。现在还不清楚这个子类是否解决了这个特殊的问题,如果它一个单元接一个单元地提取数据(这不是我需要完成的)。+1,但是我想在一场无限制死亡比赛中与CoreData较量,看看哪个更快我绝对可以(并且已经)直接使用SQLite3在特定工作负载上击败CD。但通常所付出的努力是淫秽的。通过使用CoreData,我最终会得到一个更好的应用程序,然后花掉我节省的1/3的时间调整我的应用程序的其他部分。我们不会在真空中编写代码。我从中学到,放弃一些绝对的理论性能,用节省下来的时间对应用程序代码的其他部分进行(更大的)实际性能改进,通常会更好。显然,具体细节因项目而异。是否有任何示例代码演示了使用多个MOC并将更改合并到一个主MOC?RestKit似乎很难处理XML—它附带的XML解析器在iOS 5上编译时会出现ARC错误。但总的来说,它看起来很棒——特别是对于纯JSON。