Я использую этот шаблон Xcode для основных данных.
В делегате у меня есть этот метод:
- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
, но для этого требуется iOS4.
Я пытаюсь сделать приложение совместимым с 3.0.
Итак, я преобразовал этот метод в:
- (NSURL *)applicationDocumentsDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [NSURL URLWithString:documentsDirectory];
}
, но когда coredata пытается использовать URL-адрес хранилища на
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyFile.sqlite"];
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
, происходит сбой в строке IF с сообщением:
CoreData SQL сохраняет только URL-адреса файлов поддержки (got / var / mobile / Applications / BB312A7E-6AE1-4BA2-AD87-6B96D8855CC6 /Documents/MyFile.sqlite).'
но StoreURL - это NSURL!
Есть подсказки? Спасибо