首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >归档NSMutableArray

归档NSMutableArray
EN

Stack Overflow用户
提问于 2012-05-27 23:42:28
回答 2查看 229关注 0票数 1

我正在读取许多plist并将它们显示在一个UITableview中。问题是,应用程序本身非常慢,我确实读到了一些关于归档或序列化的东西,归档是否会使应用程序更快,或者如果我想使用大量数据,我应该尝试使用sqlite?

如果有人能告诉我如何归档数据或如何序列化数据以优化plist,那就太好了。

这就是我所拥有的:(我在这里收集‘data’中的所有数组)

代码语言:javascript
复制
- (void) makeData {
    data = [[NSMutableArray alloc] init];
    sectionArray = [[NSMutableArray alloc] init];

    //here we connect each array built with the remote plist on the server - different plists for each
    amenajariArray = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://..../amenajari.plist"]];
    apicultoriArray = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://..../apicultori.plist"]];
    asigurariArray = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://..../asigurari.plist"]];
EN

回答 2

Stack Overflow用户

发布于 2012-05-27 23:45:49

您正在发出看起来像是三个同步web请求来获取数据。你应该让它们至少是异步的和并行的。您还可以采用在后台同步或更新数据的方法,并使用默认数据集进行开箱即用。查看concurrency programming guide中的dispatch_async块或操作队列。您还可以查看ASIHttpRequest中的异步方法。您必须找到一种方法,不会因为连续阻塞的http请求而阻塞UI线程。另一个SO在GCD async UI上发帖:performSelectorOnMainThread with multiple parameter

此外,如果您要持久化多个数据列表,并且开始遇到性能问题,则可能需要考虑sqlitecore data (由sqlite支持)。

请记住,如果您要持久化列表,修改一个项/属性将写入整个列表。此外,如果要存储许多列表(尤其是在数据之间存在关系的情况下),则数据库可能更合适。它还可以提供更快、更优化的查询模式。

票数 1
EN

Stack Overflow用户

发布于 2012-05-28 00:06:18

在上述情况下,数组已经以plist (xml)格式进行了序列化。即使您序列化成二进制格式,它也不会像您所希望的那样提高性能。

为了提高性能,您可以使用延迟加载概念来填充表视图数据源数组。或者显示前25行,然后显示下一行的按钮。这些都需要sqlite或核心数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10775200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档