2013-10-07 27 views
0

这里是我的CSV的Xcode:检索的Xcode一行基于搜索查询

10820 0 0 0 0 
10900 2 4 4 4 
11000 21 50 54 58 
11100 23 54 59 63 
11200 25 59 63 68 
11300 27 63 68 73 
11400 29 68 73 78 
11500 31 72 78 83 
11600 32 76 82 88 
11700 34 81 87 93 

我期待创建使用Xcode中基于这个非常漫长的CSV retreive一行代码的样本第一行。

例如:

    如果用户输入 “10900”
  1. ,第二行的列将被返回。
  2. 如果用户返回11650,11600点该行的列将被退回......总是把下面一行当输入值小于下面一行。

任何帮助,将不胜感激。我见过的代码来解析整个CSV文件,但我想这可能是一个大的内存消耗,现在我的CSV有2000行的价值观,这些都是基于第一列升序排列。

回答

0

你必须加载一个文件到内存反正找到正确的值。

有了这么大的CSV文件,我建议把CSV文件转换成二进制文件(例如plist文件),并把它作为二进制文件到您的应用程序 - 而不是在运行系统中,每次解析它。它具有更好的性能和更容易与工作,因为你是直接与NSDictonaries的NSArrays工作。

如果你不想这样做出于某种原因,接下来的解决办法是使用类似CHCSVParser: https://github.com/davedelong/CHCSVParser

它装载一次仅文件的一部分,提供了优化 - 这是最优化你可能正在寻找。