【发布时间】:2016-03-30 07:53:04
【问题描述】:
我在核心数据中有 2 个表 产品和选项
一个产品可以有多个选项,现在我想获得一个具有特定选项的产品。
我不知道如何为此编写谓词 where 子句
它因错误而崩溃( *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“此处不允许使用多对多键” ) 当我尝试下面的代码时
-(Product*)getProdcutFromDB{
AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = appDelegate.managedObjectContext;
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *orderEntity = [NSEntityDescription
entityForName:@"Product" inManagedObjectContext:context];
[fetchRequest setEntity:orderEntity];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@" options.optionID == '14'"];
[fetchRequest setPredicate:predicate];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
Product* orderEntityForProdcut=nil;
if (fetchedObjects.count>0) {
orderEntityForProdcut=(Product*)[fetchedObjects objectAtIndex:0];
NSLog(@"%@",orderEntityForProdcut.productName);
NSLog(@"%@",orderEntityForProdcut.options);
return orderEntityForProdcut;
}
return nil;
}
【问题讨论】:
标签: ios objective-c core-data