Bla*_*gic 1 database core-data ios
我有一个具有以下一对多关系的数据库:Device -properties-> Property
我想要一台具有至少一个具有特定显示类型的属性的设备。
NSArray *energyDisplayTypes = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:18],[NSNumber numberWithInt:39],[NSNumber numberWithInt:50],[NSNumber numberWithInt:62],[NSNumber numberWithInt:63], nil];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Device"
inManagedObjectContext:context];
NSError *error;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"properties.displayType IN %@", energyDisplayTypes];
[fetchRequest setPredicate:predicate];
[fetchRequest setEntity:entity];
NSArray *products= [context executeFetchRequest:fetchRequest error:&error];
Run Code Online (Sandbox Code Playgroud)
我不断收到此异常:
'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : properties.displayType IN {18, 39, 50, 62, 63}'
Run Code Online (Sandbox Code Playgroud)
我对数据库没有太多经验,所以这可能很简单。如果有人可以帮助我,我将不胜感激
如果properties是一对多关系,那么您需要指示要与数组匹配的属性的显示类型。共有三个选项:任意、全部或无。我怀疑您希望任何属性的显示类型匹配,因此您可以使用:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY properties.displayType IN %@", energyDisplayTypes];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2385 次 |
| 最近记录: |