gpt4 book ai didi

ios - 将 NSArray 写入计算机上的文件一次

转载 作者:行者123 更新时间:2023-11-29 10:52:41 25 4
gpt4 key购买 nike

我有大量数据存储在 CSV 文件中。我可以将文件解析成 NSArray,但这个过程在手机上大约需要 1 分钟。然后我可以使用

将这个文件保存到手机中
    [NSArray writeToFile:filePath atomically:YES]

我是否可以将这个 NSArray 保存到计算机上的文件中,然后只需从 appBundle 中的文件中提取 NSArray,而不必在手机上解析它?

换句话说,我有一个巨大的 CSV 文件,我想将其转换为 appBundle 中的文件,然后可以快速将其转换为 NSArray。我根本不希望应用程序因需要解析此文件而退出。那么如何从我的 CSV 中创建一个 [NSArray initWithContentsOfFile:] 可读的文件?

最佳答案

可以,但有一些限制:

在 iOS 中,应用程序包是只读的。您可以构建此数组并将其作为创建应用程序的一部分保存到您的包中,但您无法在运行时执行此操作。

我有时会编写代码在模拟器的文档目录中创建文件,然后手动将文件从模拟器的沙箱目录中复制到我的应用程序和项目中。

如果您想构建一个数组并在运行时将其保存到磁盘,您需要将其保存到沙箱中允许的目录之一 - 可能是文档目录。

只有当数组中包含的对象的整个“对象图”都是“属性列表对象”(NSString、NSData、NSDate、NSNumber、NSArray 或 NSDictionary 对象)时,才能将数组保存到文件中。您可以拥有一组包含字符串、数字、数据、日期等的任意组合的字典数组,但如果在其他对象之一中甚至有 1 个对象,则保存将失败。

还有一点:

NSArray 方法 writeToFile:atomically: 将您的数组转换为 XML 属性列表文件。请注意,与二进制属性列表文件相比,XML 属性列表更大且保存和加载速度更慢。

查看 NSPropertyListSerialization 类引用,了解有关将对象保存到二进制属性列表的信息,该列表更紧凑、速度更快。

关于ios - 将 NSArray 写入计算机上的文件一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19802378/

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