【发布时间】:2015-10-06 17:14:52
【问题描述】:
我查看了苹果文档和 SO,但找不到这个简单的代码。
我会接受我对此类问题的任何反对票,但是将返回给定实体的谓词字符串是什么,其中该实体的属性等同于给定字符串。
我有公司和产品实体。目前,它们很简单。公司具有名称和其他一些属性。产品具有制造商和其他一些属性。
我想获取产品制造商属性与在公司视图控制器中选择的公司名称相同的所有产品。
这是我的数据模型中在选择公司时处理产品更新的方法。它使用产品视图控制器的标题,因为该属性在 didSelectItemAtIndexPath 中分配了公司名称。
-(void)updateProducts {
NSFetchRequest *reqProd = [[NSFetchRequest alloc] init];
NSEntityDescription *entProd = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:self.context];
[reqProd setEntity:entProd];
NSString *companyToFilter = self.productsViewController.title;
reqProd.predicate = [NSPredicate predicateWithFormat:@"manufacturer like %@", companyToFilter];
NSError *errorProd = nil;
self.productList = [self.context executeFetchRequest:reqProd error:&errorProd];
}
问题是这个数组总是返回 0 个元素。我知道我有一个名为 iPhone 的产品,它的制造商是苹果。因此,生成不准确 SQL 的肯定是谓词。
再一次,我花了太多时间寻找答案却无济于事。有人会帮助我并解释谓词的正确字符串还是将我引导到正确的文档?
【问题讨论】:
标签: objective-c core-data nspredicate