gpt4 book ai didi

ios - 归档 NSMutableArray

转载 作者:行者123 更新时间:2023-11-29 13:35:07 27 4
gpt4 key购买 nike

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

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

这就是我所拥有的:(我在其中收集“数据”中的所有数组)

- (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"]];

最佳答案

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

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

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

关于ios - 归档 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10775200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com