【发布时间】:2014-01-14 19:13:55
【问题描述】:
我正在尝试制作一个 NSPredicate 来获取特定对象。问题是 NSPredicate 获取所有对象而不是仅获取特定对象。我做错了什么?
我的代码如下所示:
- (void)fetchDevices {
// Fetch the devices from persistent data store
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Songs"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// retrive the objects with a given value for a certain property
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"%d == %d", currentRow, [device valueForKey:@"selectedRow"]];
[fetchRequest setPredicate:predicate];
}
属性和变量:
@property (strong) NSMutableArray *devices;
currentRow = indexPath.row;
[device valueForKey:@"selectedRow"]
[device valueForKey:@"selectedRow"](这是一个存储在我的核心数据实体中的 INT)
【问题讨论】:
-
在您的谓词格式中,您希望指定一个属性名称,例如
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"songName == %@', name] -
正如@BlackRider 所示,谓词的左侧应该是您要过滤的 Song 实体上的属性名称。属性名称是什么?
-
属性为 selectedRow。那应该是这样吗? (NSPredicate *predicate = [NSPredicate predicateWithFormat:@"selectedRow == %@', name, currentrow])??
标签: ios objective-c core-data nspredicate