我觉得我开始在这个问题上失去理智了。
我已经开始使用 SDK 提供的生成的 CoreData 代码来开发 CoreData iOS 应用程序。每当我尝试实例化实体的新实例以便保存它时,就会出现我的问题。
根据 Apple CoreData 教程,这是我在 AppDelegate 中的实例化代码(我将一堆代码移到那里只是为了尝试调试此问题):
NSManagedObjectContext* context = [self managedObjectContext];
if (!context)
{
NSLog(@"Error"); // I'm not too concerned about my error handling just yet
}
在那之后,这是产生我遇到的错误的行:
Vehicle* vehicle = (Vehicle*)[NSEntityDescription insertNewObjectForEntityForName:@"Vehicle" inManagedObjectContext:context];
有问题的错误是:
Thread 1: EXC_BAD_ACCESS (code=EXC_ARM_DA_ALIGN address=0xdeadbeef)
总而言之,除了内存对齐问题(ARMv7 常见?)之外,我真的不知道这意味着什么,而且我在 Google 上找到的资源对我没有丝毫帮助。
唯一其他相关的代码是 Xcode 在生成项目时提供的“managedObjectContext”方法,因为它首先生成了 managedObjectContext:
- (NSManagedObjectContext *)managedObjectContext
{
if (__managedObjectContext != nil) {
return __managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
__managedObjectContext = [[NSManagedObjectContext alloc] init];
[__managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return __managedObjectContext;
}
就像我说的,我在这里超出了我的深度。任何人都可以就我如何解决这个问题提供一些明确的说明吗?