从核心数据数据库中提取特定数据,并在UITableView中显示



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

ExData具有字符串类型的属性标记。

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

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

ExDatasArray是一个可变数组。

NSManagedObjectContext*managedObjectContext=[self-managedObjectContext];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"ExData"];
self.ExdatasArray = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

以上是如何从ExData中提取数据的。。。

要获取特定数据,请在获取请求中添加谓词

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

备注:如果您在表格视图中显示结果集,您也可以考虑使用CCD_ 1。

如果我正确理解您的问题,那么您正试图限制fetchRequest的结果。使用NSPredcate指定查询,如果需要,还可以使用NSSortDescriptor对其进行排序。下面,我假设您的标记属性是命名标记,并且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];
}

最新更新