2011-10-21 115 views
0

CoreData目前为止真的很棒:-)我真的很喜欢它。 现在我有一个多对多的关系,并希望过滤。我在这里卡住了。我有多个例如邮编(44512,12445,...) 的问题是,如果我搜索445我用contains = %@它返回两个结果(12345,12445)。CoreData BEGINSWITH多对多关系

我想只有一个结果,并将结果与​​我的搜索字符串开头。所以通常我会用BEGINSWITH = %@。有了多对多的关系,我无法使用它。有什么解决方法吗? :-)

非常感谢您的帮助,我真的很感激!

+0

你如何存储你的邮政编码? keypath不起作用? – klefevre

+0

感谢您的回答。在这里你可以找到db-modeling的截图:http://stackoverflow.com/questions/7846623/coredata-basics-to-many-relationship-array-data因为我是CoreData的新手,我从来没有使用过keypath这里... – rdesign

回答

2

没有看到您的代码我不能完全给出答案。鉴于你的其他SO问题,它看起来像你的拉链存储为NSStrings。
所以,你可以构造一个NSPredicate在这example from Apple使用beginswith等。 beginswith示例位于Arrays部分,但您可以轻松更改示例的谓词并将其应用于NSFetchRequest。如果你以前从未做过谓词,NSFetchRequest有一个predicate属性。你创建了前置,然后将其分配给NSFetchRequest的谓词属性,然后执行你的获取请求。

就像我在开始时说,如果你表现出的代码片段,我们可以提供更多的帮助/具体在我们的答案。