У меня проблема с моим CoreData, но я уверен, что концептуально делаю что-то не так.
Я пытаюсь получить доступ к sql-файлу CoreData на одном компьютере в моей сети с другого компьютера. Я пытаюсь сделать это из кластерного приложения. Каждая машина имеет одну и ту же копию программного обеспечения и должна указывать на базу данных на этой машине.
Моя модель и контекст загружаются нормально для машины, на которой находится база данных. Другая машина выдает ошибку 13400 NSPersistentStoreInvalidTypeError
Вот кусок кода:
NSError *error = nil;
NSURL *mdlurl = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"OsiriXDB_DataModel" ofType:@"mom"]];
_model = [[NSManagedObjectModel alloc] initWithContentsOfURL: url];
NSURL *dburl = [NSURL URLWithString:[NSString stringWithUTF8String:_DBPath.c_str()]];
// The dburl has a format like: file://192.168.0.2/Users/slate/Documents/OsiriX%20Data/Database.sql which addresses the machine the data sits on.
_storeCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: _model];
_context = [[NSManagedObjectContext alloc] init];
[_context setPersistentStoreCoordinator: _storeCoordinator];
if (![_storeCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:dburl options:nil error:&error]) {
NSLog(@"Error loading store: %@", error); // Error Shows up Here
NSLog(@"MOM: %@",_model); // Model looks OK. Lots of print outs, with the correct names and stuff. (so technical).
}
Признаюсь, я ничего не знаю о CoreData. Это потому что он на другой машине? Я прочитал это онлайн, но я не думаю, что это моя проблема. Если это так, я понятия не имею, как это исправить, потому что я не могу найти файлы .xml
в моем каталоге ~/Library/Application\ Support/
, относящиеся ни к MyApp
, ни к OsiriX
, которые являются программой, создавшей базу данных.
Я неправильно загружаю CoreData по сети?
Если нет, что мне делать?
Спасибо,