【发布时间】:2013-07-22 19:01:11
【问题描述】:
我有一个NSArray,里面有 200,000 个单词,每个单词可以有 1-10 个字符。
我想基于第一个数组创建第二个数组,只包含正好有 5 个字符的单词。
我该怎么做?
【问题讨论】:
标签: objective-c cocoa search nsarray
我有一个NSArray,里面有 200,000 个单词,每个单词可以有 1-10 个字符。
我想基于第一个数组创建第二个数组,只包含正好有 5 个字符的单词。
我该怎么做?
【问题讨论】:
标签: objective-c cocoa search nsarray
使用 predicate 到 filter the array 并生成一个仅包含长度为 5 的单词的新数组。类似于:
NSPredicate *p = [NSPredicate predicateWithFormat:@"length == 5"];
NSArray *fiveCharWords = [myWordList filteredArrayUsingPredicate:p];
我似乎总是第一次看到predicate format 有点错误,所以如果那里有错误不要感到惊讶。关键是您应该阅读 NSPredicate 并了解如何使用谓词来过滤数组和集合等集合。
【讨论】:
使用谓词过滤数组,其中谓词将length 与5 进行比较。或者循环并将适当的值复制到另一个数组中。
【讨论】:
使用您的数据模型,我将使用 For 循环并解析数据,当我在 Array1 中找到长度 > 5 的对象时,我会将其提交给 Array2。我也会先在 NSArray 和 For Loop 上搜索关于 ObjectiveC 的内容。
使用不同的数据模型,我会将所有 Array1 数据放入 SQLLite 数据库中,以便您的应用运行得更快。
【讨论】: