我目前有一个表视图,显示数据库实体的所有内容:ExData。
ExData有一个字符串类型的属性标记。
我的问题是我想在表格视图中显示ExData的内容,但只显示标签设置为2的条目。
标签将从之前的视图控制器发送,但这可以在以后进行整理,因为我只想硬编码只显示一个标签值条目
ExDatasArray是一个可变数组。
NSManagedObjectContext * managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"ExData"];
self.ExdatasArray = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
以上是如何获取ExData中的数据......
答案 0 :(得分:0)
要获取特定数据,请在获取请求中添加谓词:
NSString *theTag = ...
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag == %@", theTag];
[fetchRequest setPredicate:predicate];
备注:如果要在表格视图中显示结果集,您可能还会考虑
使用NSFetchedResultsController
。
答案 1 :(得分:0)
如果我正确理解您的问题,您正试图限制fetchRequest的结果。使用NSPredicate指定查询,如果需要,还可以使用NSSortDescriptor对其进行排序。下面我假设您的标签属性名为tag,并且已正确设置了searchTagValue。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"ExData"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"tag == %@", searchTagValue];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"tag" ascending:YES]];
NSError *error;
NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (!result) {
// handle error
}
else {
self.ExdatasArray = [results mutableCopy];
}