objective-c - 永久保存 CoreData

标签 objective-c ios xcode

我整个下午都在努力让我的应用程序的 CoreData 部分正常工作,并且几乎让它正常工作。问题是当应用程序终止(从多任务菜单中删除)时,CoreData 不会保存适当的值。剩下的值是我放入实体的初始值(在我的例子中是 0,定义为 NSString),而不是用户输入的新值。所以问题是在关闭应用程序后永久保存新值,并且在加载应用程序时不再显示初始值

实体名称:Gameinfo

属性:分数

我不确定我做错了什么。如果有人能帮助我,我将不胜感激。 谢谢!

-(IBAction)saveTheory1
{
AppDelegate *appDelegate= [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = 
[appDelegate managedObjectContext];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Gameinfo"];
NSError *error = nil;
NSArray *someArray = [context executeFetchRequest:request error:&error];   
[[someArray objectAtIndex:0] setValue:[self showKey] forKey:@"score"]; // showKey gets the text from UITextField
}

-(IBAction)showTheory1;

{
AppDelegate *appDelegate= [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = 
[appDelegate managedObjectContext];
NSEntityDescription *entityDesc = 
[NSEntityDescription entityForName:@"Gameinfo" 
            inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSManagedObject *matches = nil;
NSError *error;
NSArray *objects = [context executeFetchRequest:request 
                                          error:&error];
matches = [objects objectAtIndex:0];
NSLog (@"show us the current value: %@", [matches valueForKey:@"score"]);
}

最佳答案

您根本没有保存该值。您只是将其分配给 Gameinfo 对象。要实际保存它,请在托管对象上下文中调用 save: 方法:

    ...
    [[someArray objectAtIndex:0] setValue:[self showKey] forKey:@"score"];
    NSError *saveError = nil;
    [[appDelegate managedObjectContext] save:&saveError];
}

关于objective-c - 永久保存 CoreData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11878107/

相关文章:

objective-c - 什么是 NSObject isEqual : and hash default function?

ios - 自定义 UIButton 不起作用

objective-c - 在 Objective C (iOS) 中拖放控件

objective-c - 如何在 Cocoa Mac Os X 应用程序的 NSTableView 中为用户提供快速浏览体验?

ios - Quartz 2D 绘图基元 旋转

ios - 我如何在我的项目中运行 XCTest 时发生运行时错误

ios - 从哪里获取其他 iOS 版本的 iOS 系统符号

ios - UIWebView 中的自定义按钮(适用于 iPad)

iOS:管理 REST 端点的简单方法

ios - 无法采用 UITableViewDataSource 协议(protocol) - 方法不会覆盖其父类(super class)中的任何方法