Core data 获取实体的请求。属性==@";somevalue“;

Core data 获取实体的请求。属性==@";somevalue“;,core-data,attributes,nspredicate,nsfetchrequest,Core Data,Attributes,Nspredicate,Nsfetchrequest,如何设置fetch请求以仅从具有一个特定值的实体属性中提取数据?这是我以前使用过的基本代码 -(void)获取结果 { NSFetchRequest*fetchRequest=[NSFetchRequest fetchRequestWithEntityName:self.entityDescription.name]; NSString*cacheName=[self.entityDescription.name stringByAppendingString:@“Cache”]; //谓词代码

如何设置fetch请求以仅从具有一个特定值的实体属性中提取数据?这是我以前使用过的基本代码

-(void)获取结果
{
NSFetchRequest*fetchRequest=[NSFetchRequest fetchRequestWithEntityName:self.entityDescription.name];
NSString*cacheName=[self.entityDescription.name stringByAppendingString:@“Cache”];
//谓词代码
if(self.predicate!=nil){
[FetchRequestSetPredicate:self.predicate];
}
//谓词代码结尾
NSSortDescriptor*sortDescriptor=[NSSortDescriptor sortDescriptor WithKey:@“name”升序:是];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor];
self.fetchedResultsController=[[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:cacheName];
成功;
n错误*错误;
成功=[self.fetchedResultsController性能检测:&错误];
如果(!成功)
{
NSLog(@“%@,[错误本地化描述]);
}
}
我一直在看这一页:这是正确的方向吗

我需要使用
NSPredicate
还是可以不使用


感谢您的帮助,指向正确的方向等。

设置
NSFetchRequest
相当于SQL语言中的SELECT语句

这里有一个简单的例子:

NSFetchRequest*request=[[NSFetchRequest alloc]init];
[请求setEntity:[NSEntityDescription entityForName:@“EntityName”在托管对象上下文:moc中];
n错误*错误=nil;
NSArray*结果=[moc executeFetchRequest:请求错误:&错误];
//错误处理代码
数组
results
包含sqlite文件中包含的所有托管对象。如果要获取特定对象(或多个对象),则需要在该请求中使用谓词。例如:

NSPredicate*谓词=[NSPredicate predicateWithFormat:@“attribute==%@”,“Some Value”];
[请求集谓词:谓词];
在这种情况下,
results
包含属性等于某个值的对象。设置谓词等于将WHERE子句放入SQL语句中

注意

我假设实体的名称为
EntityName
,其属性称为
属性
,类型为string

有关更多信息,我建议您阅读核心数据编程指南和
NSFecthRequest
课程参考

希望能有帮助