Ios 在Swift中实现更通用的功能方法
我在Swift中有一个数组,用于保存您在工作周内的轮班数。 我想从这个集合中检索在特定条件下匹配的第一个元素(在本例中是dateworked) 然而,稍后,我可能还想找到其他事情,比如你的最高收入转变。我甚至可能希望选择与特定子句匹配的所有项,而不是仅选择一个 这里的谓词是否参与了这样的操作?有没有人能给我指出正确的方向,或者分享一些代码示例来帮助我实现这一点,这样我就不必为数组上的特定目的编写多个函数Ios 在Swift中实现更通用的功能方法,ios,generics,swift,nspredicate,xcode6,Ios,Generics,Swift,Nspredicate,Xcode6,我在Swift中有一个数组,用于保存您在工作周内的轮班数。 我想从这个集合中检索在特定条件下匹配的第一个元素(在本例中是dateworked) 然而,稍后,我可能还想找到其他事情,比如你的最高收入转变。我甚至可能希望选择与特定子句匹配的所有项,而不是仅选择一个 这里的谓词是否参与了这样的操作?有没有人能给我指出正确的方向,或者分享一些代码示例来帮助我实现这一点,这样我就不必为数组上的特定目的编写多个函数 非常感谢你的帮助 简单的答案是使用indexOfObjectPassingTest和正确的谓
非常感谢你的帮助 简单的答案是使用
indexOfObjectPassingTest
和正确的谓词。当您想要在一个小数组上执行少量的唯一搜索时,这是有效的,在这个数组中,在自己的函数中抽象每种类型的搜索几乎是无用的。
然而:
-
<> LI>如果在代码中的多个地方进行了相同的搜索,请考虑将代码抽象为函数,甚至将其自身的类抽象化。
- 如果需要大的结果集,也可以考虑CordaDa/数据库< /LI>
索引对象
。但是您的决定取决于原始数组的大小、包含对象的复杂性、谓词的复杂性、结果集的大小等等。数组大小对于CoreData来说总是太小。使用数组和谓词,包括对象的索引
和filteredarrayingpredicate
。谢谢,我最后这样做了。你觉得呢?shiftsForDay=shifts.filter{$0.shiftDate==self.chosenDate}我想既然这是一行,我就可以这样做,而不是泛泛而谈。filter已经足够好了。