核心数据保存

问题描述:

我创建了一个实体对象,并试图将其保存到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"); 
} 
+0

你是什么数据库的意思是......?你在手动查看吗?只需检索它的值在您的代码..... – 2011-05-24 11:58:51

+0

我使用coredata保存和检索,而检索没有返回我得到的SQLite文件,并打开它我发现表研究不包含记录 – AMH 2011-05-24 12:01:06

+0

请显示您的代码用来显示数据。 – Rayfleck 2011-05-24 12:15:54

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

//study_NEW.SudyID = study.SudyID; 

[study_NEW setSudyID:[study SudyID]]; 

OR

[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"); 

} 

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

我以为一个保存发送到NSManagedObjectContext没有持久性存储是NOP,没有任何操作执行,应该总是成功。所以我尝试了一下我的项目,我评论了一个持久存储附加到上下文,并运行该程序。该程序试图保存时抛出异常。因此,您必须拥有持久存储区,否则发送到上下文的保存消息将导致异常。

那么什么是managedObjectContext_NEW?这是你的对象的属性吗?它是否有一个访问器方法,可以创建新的NSManagedObjectContext来破坏旧的上下文,并覆盖持久存储?每次访问该属性时,您都可以删除以前保存的任何数据。

此代码示例没有问题。问题在于上下文的设置。

+0

成功插入的研究出现在日志文件,这意味着它插入成功 – AMH 2011-05-24 12:48:47