我的代码在IOS 9之前有效。在我编译了一些其他更改之后,代码现在代码中的行死了一个BAD ACCESS消息。我不能理解为什么这个曾经工作,现在它没有。
[_ managedObjectContext setPersistentStoreCoordinator:coordinator];<<<这条线路崩溃 - 糟糕的访问
int main(int argc, char argv[])
{
printf("%d", argc);
return 0;
}
答案 0 :(得分:0)
我用Willeke的暗示改写了上面的内容。我查了一下他的暗示并想出了一个更好的方法来做到这一点。这是现在有效的代码!
- (void)setmanagedObjectContext
{
if (_managedObjectContext != nil) {
return ;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"wrl.sqlite"];
_managedObjectContext =
[[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
self.managedObjectContext.persistentStoreCoordinator =
[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];
NSError* error;
[self.managedObjectContext.persistentStoreCoordinator
addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:nil
error:&error];
if (error) {
NSLog(@"error: %@", error);
}
self.managedObjectContext.undoManager = [[NSUndoManager alloc] init];
}
// Returns the managed object model for the application.
// If the model doesn't already exist, it is created from the application's model.
- (NSManagedObjectModel *)managedObjectModel
{
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"wrh" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}