0
我完全不熟悉核心数据编程!我试着写一个应用程序,总之,这样的:检索核心数据库中最后保存的属性
用户有很多在视图中的数据,这些数据的结果OS大量的计算之前完成。在这个特定的“全部结果”视图中,可以选择保存数据以供将来参考,为此,用户需要输入标识符(在文本框中)并按保存按钮。
为了检索所保存的数据,则用户重新输入标识符和按加载按钮。
几乎一切都工作得非常好:数据被保存和加载......但问题是,进入标识符和按LOAD按钮时,应用程序加载第一个保存的数据,而不是最后一个!我希望应用程序在按下加载按钮时加载上次保存的数据...我该怎么做?
我很抱歉把这个新手的问题来打扰你,但是这是第一次我试图处理核心数据,我真的想知道如何做到这一点!我非常感谢所有能够帮助我的人!
为“LOAD”按钮的代码是这样的:
- (IBAction)loadData:(id)sender
{
[_identificador resignFirstResponder];
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"English"
inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(identificador = %@)", _identificador.text];
[request setPredicate:pred];
NSManagedObject *matches = nil;
NSError *error;
NSArray *objects = [context executeFetchRequest:request
error:&error];
if ([objects count] == 0)
{
_status.text = @"No matches";
}
else
{
matches = objects[0];
_dataAtualEng.text = [matches valueForKey:@"dataRCQ"];
_rcqEng.text = [matches valueForKey:@"rcq"];
_status.text = [NSString stringWithFormat: @"%lu matches found", (unsigned long)[objects count]];
}
}
非常感谢你Vijayts !!!!我认为你是对的......但在我的应用程序中,我无法强制用户输入每次保存的唯一标识符,我的应用程序是关于身体评估,计算BMI,身体脂肪等......而这个“全部结果“视图是评估的所有结果都显示给用户,然后他决定保存或不保存...您知道,标识符是被评估人员的姓名。但是如果用户输入相同的标识符,有没有办法覆盖数据,而不是保存具有相同标识符的另一个“实例”? – Vladimir
对不起弗拉基米尔。我不确定任何这样的方法。此外,如果答案帮助你的问题。请标记为已接受:) –