我最近调整了我的 iPhone 应用程序以使用核心数据;经过一些研究,我发现 NSPredicate 似乎是处理我的数据库查询的最佳方式。特别是,我的查询将基于 4 个单独的属性。首先,我需要在数据库中查询具有特定县名的所有实体。如果我搜索具有县属性“Amador”的所有实体,我还需要谓词来返回可能具有“Amador and Butte”作为县属性的实体。其次,我需要让谓词只返回那些通过县条件的实体,这些实体也通过了第二个条件:commodity1 属性还必须在其字符串中的某处包含“gold”。第三,如果商品1属性包含字符串“none”,那么谓词必须在商品2 中搜索字符串“Gold”。如果它在该属性中找到“无”,那么它必须对商品 3 属性执行相同的操作。我可能可以构建我的数据库,这样我就不必进行如此复杂的查询,但现在我需要一个解决方案。
问问题
838 次
1 回答
2
Apple 文档中 Predicate Programming Guide的Predicate Format String Syntax 部分指出,有一个“LIKE”和一个“MATCHES”运算符可用于您的谓词进行字符串比较:
喜欢
左边的表达式等于右边的表达式: ? 和 * 允许作为通配符,在哪里?匹配 1 个字符, * 匹配 0 个或更多字符。在 Mac OS X v10.4 中,通配符与换行符不匹配。
火柴
根据 ICU v3,左侧表达式使用正则表达式样式比较等于右侧表达式(有关更多详细信息,请参阅 ICU 正则表达式用户指南)。
如果我能很好地理解您的问题,这些运算符可能有助于解决您的问题。
于 2011-01-28T17:12:21.167 回答