提高 Xcode 中的文本文件读取速度?

Posted

技术标签:

【中文标题】提高 Xcode 中的文本文件读取速度?【英文标题】:Improving text file reading speed in Xcode? 【发布时间】:2012-05-05 04:37:09 【问题描述】:

我目前正在从事一个涉及大量文本文件读取的项目。我需要将文件的内容放入 NSStrings 中,以便进一步操作它们。我正在使用什么:

NSString *file = [[NSBundle mainBundle] pathForResource:fileName ofType:@"txt"];
NSString *fileContents = [NSString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:nil];

它工作得很好,但是随着我的项目的增长,文本文件的数量也在增加。我开始认为应该有一种更有效的方式来搜索项目中包含的文本文件。

在许多情况下,我确切地知道要搜索的文件。我根据需要阅读的时间将文件组织到组文件夹中。有没有办法缩小初始文件搜索的范围?当我知道我需要的文件在更具体的级别上时,似乎每次搜索整个应用程序包都是没有意义的。

有什么方法可以搜索组而不是捆绑包?我可以以某种方式从搜索中排除某些文件吗?据我所知,为这个上下文定义自定义包不适合使用 NSBundle 功能。

【问题讨论】:

要真正提高速度,请考虑将所有字符串添加到核心数据或 sql 数据库中,以便您可以索引它们并进行非常快速的查找(通过比较)。 【参考方案1】:

你看过-[NSBundle pathForResource:ofType:inDirectory:]的方法吗?

【讨论】:

哇,太完美了。当我查看 NSBundle 文档时,不确定我是如何错过的。好像还不够近!谢谢一百万。【参考方案2】:

我遇到过类似的情况,为了进一步优化,我将所有资源文件都保存在字典中,并带有一些键,

你可以试试关注

1 -- 在我们的应用程序中,您可能有某种模式或在哪里可以找到主要组,

2 -- 每个组有多个字典,组内可以存储文件名,

3 -- 正如 ken 建议的那样,使用 -[NSBundle pathForResource:ofType:inDirectory:]

【讨论】:

以上是关于提高 Xcode 中的文本文件读取速度?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 2 和 Xcode 7 读取 Playground 文本资源文件

Xcode头文件引入方式

Java IO流--使用缓冲流实现非文本文件和文本文件的复制

在 Xcode 8 和 Swift 3 中写入文本文件并在应用重新启动时保持更改 [重复]

如何提高大型文本文件的数据加载性能[重复]

如何在MIT / GNU Scheme中读取文本文件?