gpt4 book ai didi

ios - 如何获取核心数据中的特定记录

转载 作者:可可西里 更新时间:2023-11-01 04:09:50 24 4
gpt4 key购买 nike

我是iOS开发新人。我正在使用核心数据的 NSManagedObject 来执行插入和获取操作。它工作得很好。但问题是,我只想从表中获取一些选定的记录(MySQL 中的 where 条件)。例如“从 city='Pune' 的用户中选择名称”;我发现 NSPredicate 可以获取过滤后的数据。但它提供了数组中的所有数据,而不仅仅是选定的数据。例如如果上述查询的结果是:

Anu

然后 NSPredicate 结果将给出:

fname = Anu
lname = Padhye
city = Pune
id = 3

有没有办法在 iOS Objective-c 中只获取选定的记录?以下是我用于 NSManagedObject 的代码片段:

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"User"];
valueData = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];


NSEntityDescription *productEntity=[NSEntityDescription entityForName:@"User" inManagedObjectContext:managedObjectContext];
NSFetchRequest *fetch=[[NSFetchRequest alloc] init];
[fetch setEntity:productEntity];
NSPredicate *p=[NSPredicate predicateWithFormat:@"id == %d", 3];
[fetch setPredicate:p];
//... add sorts if you want them
NSError *fetchError;
NSArray *fetchedProducts=[valueData filteredArrayUsingPredicate:p];

最佳答案

试试这个:

 NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"User"];
request.predicate = [NSPredicate predicateWithFormat:@"city == %@ && id == %d", @"Pune", 3];
request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"id" ascending:YES]];

NSArray *results = [managedObjectContext executeFetchRequest:request error:nil];

结果数组现在应该包含所有以浦那为城市且 ID 为 3 的记录。

关于ios - 如何获取核心数据中的特定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24653376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com