Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 核心数据保存_Iphone_Objective C_Ipad_Core Data - Fatal编程技术网

Iphone 核心数据保存

Iphone 核心数据保存,iphone,objective-c,ipad,core-data,Iphone,Objective C,Ipad,Core Data,我创建了一个实体对象,并试图将其保存到sqllite,它说保存完成,没有错误,但它不会显示在数据库中,没有任何解决该问题的建议 我使用以下代码 Studies *study_NEW = (Studies *)[NSEntityDescription insertNewObjectForEntityForName:@"Studies" inManagedObjectContext:managedObjectContext_NEW]; study_NEW.SudyID = study.SudyID

我创建了一个实体对象,并试图将其保存到sqllite,它说保存完成,没有错误,但它不会显示在数据库中,没有任何解决该问题的建议

我使用以下代码

Studies *study_NEW = (Studies *)[NSEntityDescription insertNewObjectForEntityForName:@"Studies" inManagedObjectContext:managedObjectContext_NEW];

study_NEW.SudyID = study.SudyID;
error = nil;
if (![study_NEW.managedObjectContext save:&error]) {
// Handle error
NSLog(@"Unresolved error study %@, %@", error, [error userInfo]);
abort();  // Fail
}
else{
NSLog(@"Study inserted successfuly");
}

执行此代码时,如果
NSManagedObjectContext
无效,则第一行将导致异常。所以我猜您的
NSManagedObjectContext
没有连接到您认为应该连接到的持久存储。检查上下文设置代码。可能代码无法将持久存储连接到
NSPersistentStoreCoordinator

我认为发送到没有持久存储的
NSManagedObjectContext
的保存是
NOP
,没有执行任何操作,应该总是成功的。所以我在我的一个项目中尝试了它,我注释掉了一个持久存储到上下文的附件,然后运行了这个程序。程序试图保存时引发异常。因此,必须有一个持久存储,否则发送到上下文的save消息将导致异常

那么什么是新的管理对象上下文呢?这是你的物品的属性吗?它是否有一个访问器方法,可以创建一个新的
NSManagedObjectContext
关闭旧的上下文并覆盖持久存储?每次访问该属性时,都可能会删除以前保存的任何数据

这个代码示例很好。问题在于上下文的设置

Studies *study_NEW = (Studies *)[NSEntityDescription insertNewObjectForEntityForName:@"Studies" inManagedObjectContext:managedObjectContext_NEW];

//study_NEW.SudyID = study.SudyID;

[study_NEW setSudyID:[study SudyID]];


你所说的数据库是什么意思。。。?你在手动查看吗?只需在代码中检索其值…..我使用coredata保存和检索,而retrieve nothing返回我获取sqlite文件并打开它,我发现表研究不包含记录请显示用于显示数据的代码。这是一个简单的获取请求,我确保表是空的您是如何准备新的
managedObjectContext的?它是有效的MOC吗?日志文件中显示已成功插入的研究,这意味着插入成功
[study_NEW setSudyID:study.SudyID];

error = nil;
if (![study_NEW.managedObjectContext save:&error]) {

// Handle error
NSLog(@"Unresolved error study %@, %@", error, [error userInfo]);

exit(-1);  // Fail

}

else{

NSLog(@"Study inserted successfuly");

}