提高 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 文本资源文件
Java IO流--使用缓冲流实现非文本文件和文本文件的复制