2011-03-09 50 views
4

我有一个核心数据存储上设置了NSManagedObject的Xcode中生成的子类:注意。NSManagedObject initWithEntity:insertIntoManagedObjectContext:EXC_BAD_ACCESS

我可以使用NSEntityDescription insertNewObjectForEntityName:inManagedObjectContext:没有麻烦,但是当我尝试这样做:

NSManagedObjectContext* moc = [(QuickTextAppDelegate*)([[UIApplication sharedApplication] delegate]) managedObjectContext]; 

    Note* note = [[Note alloc] initWithEntity:@"Note" insertIntoManagedObjectContext:moc]; 

我得到一个EXC_BAD_ACCESS错误。

使用断点我可以看到的NSManagedObjectContext *中确实指向一个有效的对象。

任何帮助,将不胜感激!

回答

14

我看到至少有一个问题有:initWithEntity:insertIntoManagedObjectContext:需要一个NSEntityDescription,而不是一个NSString。试试这样的:

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Note" inManagedObjectContext:moc]; 
Note* note = [[Note alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:moc]; 
+0

非常感谢!我确定我已经咨询了文档并尝试了一切,但显然我没有足够关注NSEntityDescription是什么! – 2011-03-10 01:19:59