如何避免多次迭代搜索并将一个可能的对象属性分配给变量?

时间:2011-08-11 08:53:32

标签: objective-c nsarray

我们如何避免多次迭代搜索对象的属性,如果找到则将其分配给变量else搜索另一个键?

eq我们有视频类,其中一个字段为videoType,其值可以是 hq(高质量),正常(正常),def(默认)等等。

从包含多个视频对象的数组中,我们如何按顺序搜索和返回特定对象,如果数组包含具有属性hq的对象,则先返回它,否则搜索normal并继续执行。如果要在密钥集(hq,normal,def,....)中测试一组n个密钥,那么除非找到密钥,否则我们总是需要“n”次迭代整个数组。

这可以完成单次迭代吗?我们是否需要首先按照所需键集中键的出现顺序对原始数组进行排序。我希望我的问题陈述是清楚的。

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是为每个videoType创建单独的NSMutableArrays。然后,当您在视频对象数组上迭代一次时,检查其数组类型并将视频添加到正确的数组中。

完成迭代后,通过将另一个数组与addObjectsFromArray连接来创建最终的可变数组。

如果您有很多或可变的视频类型列表,您可以在NSDictionary中创建单独的可变数组作为值,其中键是视频类型。这样,您可以通过从字典中获取目标数组来获取目标数组。