我试图弄清楚是否可以使用相同的获取请求对数据模型进行两种搜索,但根据搜索输入是字母还是数字使用不同的谓词。
所以我有一个联系人实体和一个电话实体。联系人有一个电话号码列表(工作号码、手机号码等)。所以我想做的是有一个获取请求,其中包含我认为会带回联系人及其电话号码列表的子实体?然后,根据用户输入的是字母还是数字,搜索联系人姓名或电话号码。我不确定如何在谓词中执行后一部分,或者如果有可能,因为它是一个数字列表而不仅仅是一个(否则我认为我可以执行“contact.number”)。
如果不可能,我不知道还能尝试什么。我使用联系人姓名显示结果。因此,如果我对电话场景有一个完全不同的获取请求,我可以带回所有电话号码 - 但随后我必须进行第二次获取以获取与这些电话号码相关的所有联系人,以便能够显示结果的名称?这看起来确实很慢。我有 4 万个联系人......
最佳答案
以下“联系人”谓词可用于获取电话号码以给定前缀开头的所有联系人:
[NSPredicate predicateWithFormat:@"ANY phoneNumbers.number BEGINSWITH %@", numberPrefix];
关于ios - 带有子实体的 NSFetchRequest - 在子实体内搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130561/