0

我目前有一个表格视图,显示数据库实体的所有内容:ExData。

ExData 有一个字符串类型的属性标签。

我的问题是我想在表格视图中显示 ExData 的内容,但只显示标签集为 2 的条目。

该标签将从前一个视图控制器发送,但这可以稍后进行整理,因为首先我只想硬编码一个显示的标签值条目

ExDatasArray 是一个可变数组。

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"ExData"];

self.ExdatasArray = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

以上是从 ExData 获取数据的方式...

4

2 回答 2

0

要获取特定数据,请向获取请求添加谓词:

NSString *theTag = ...
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag == %@", theTag];
[fetchRequest setPredicate:predicate];

备注:如果您在表格视图中显示结果集,您还可以考虑使用NSFetchedResultsController.

于 2013-07-09T16:58:50.017 回答
0

如果我正确理解了您的问题,那么您正在尝试限制 fetchRequest 的结果。使用 NSPredicate 指定查询,如果需要,使用 NSSortDescriptor 对其进行排序。下面我假设您的 tag 属性被命名为 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];
}
于 2013-07-09T17:04:47.140 回答