2014-09-04 91 views
0

我是新应用程序开发人员,我的分割视图核心数据iPad应用程序遇到了很大的问题。尽管我确信我已经很好地构建了所有核心数据结构,但当我在查看之间传递对象并通过核心数据保存对象时,我遇到了问题。基本上我的问题是这样的: 我有peopleviewcontroller我列出列表中的所有人。我有addpersonviewcontroller创建新的人并将其保存到coredata。但是,尽管在新类中保存新对象在保存错误结构中看起来成功,但没有数据写入核心数据。我推出了代码,并发现创建人的managedjectcontext始终为空。因此,它不写入核心数据。 我花了很多很多时间来解决问题,包括阅读stackverflow的日子,但没有解决方案。 对这个问题的任何帮助深表感谢。 Thabk你提前。具有核心数据的iPad分割视图应用程序

回答

0

Your Person是NSManagedObject的子类。在你的AddPersonViewController中,你从来没有创建过这个对象。在保存之前,您必须使用将该实体插入核心数据。

我建议有一些商店/存储库处理所有这些。

举例来说,我有这个在我的代码:

- (NSManagedObject *)createManagedObject:(NSString *)entityName 
{ 
    NSManagedObject *objectCreated = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:self.managedObjectContext]; 

    [self saveContext]; 
    return objectCreated; 
} 

我再与实体类型调用它,它返回一个NSManagedObject。然后,您可以将其投射到您的人员类别

Person * addPerson =(Person *)managedObject;

现在您可以进行更改并保存。

NSManagedObject必须在存储之前由存储创建。你不能只是将它提升到新的水平,并期望它能够发挥作用。

+0

Hello Justin,非常感谢您的回答。如果您注意到,我已在PeopleForController中的prepareForSegue方法中创建了addPerson对象。你是说我应该重新创建它? – emkay 2014-09-04 22:40:06

+0

添加人员正在保存,在您的表格视图中显示他们时出现错误。 – 2014-09-04 23:28:04

+0

再次感谢您。我通过sqllite查看数据。但是,似乎没有数据。 – emkay 2014-09-04 23:54:43

相关问题