Так что это отстой. Попытка заполнить базовую базу данных информацией из NSDictionaries.Основные данные «Connection Invalid»
Я открываю UIManaged Document, используя код ниже, блок обработчика завершения вызывает метод, который рекурсивно заполняет словарь из API и добавляет сущность для базы данных для каждого из них.
Файл базы данных создается просто отлично, словарь заполняется нормально, а объект объекта также заполнен, но по какой-то причине информация не записывается в базу данных, хотя иногда она работает, я не конечно, если что-то другое.
я получаю сообщение в консоли, которая говорит:
"NSFileCoordinator:. Удивительная ошибка сервера была сигнализировали Подробность: Подключение недействительны"
всякий раз, когда методы openWithCompletionHandler или saveToURL: forSaveOperation: withCompletionHandler бежать.
Я не могу понять, почему приведенный ниже код не работает, учитывая, что он вырезан и вставлен из курса iPhone в Стэнфорде.
Я пробовал удалять приложение с симулятора, но без разницы. Спасибо, благодарю.
+ (void)populateDatabase
{
// Get URL -> "<Documents Directory>/<TrailerDB>"
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"TrailerDB"];
UIManagedDocument *doc = [[UIManagedDocument alloc] initWithFileURL:url];
// If document exists on disk...
if (![[NSFileManager defaultManager] fileExistsAtPath:[url path]])
{
[doc saveToURL:url
forSaveOperation:UIDocumentSaveForCreating
completionHandler:^(BOOL success)
{
if (success) [self fillDatabase:doc.managedObjectContext];
if (!success) NSLog(@"couldn’t open document at %@", url);
}];
} else {
if (doc.documentState == UIDocumentStateClosed) {
// exists on disk, but we need to open it
[doc openWithCompletionHandler:^(BOOL success)
{
if (success) [self fillDatabase:doc.managedObjectContext];
if (!success) NSLog(@"couldn’t open document at %@", url);
}];
} else if (doc.documentState == UIDocumentStateNormal)
{
[self fillDatabase:doc.managedObjectContext];
}
}
}
Yep веселит Даниил, я на самом деле понял это, но не разрешили ответить на мой собственный вопрос! Кажется, сообщение об ошибке, которое я получил, было безвредным. Я проверил, и он также появляется в моем другом приложении, которое использует тот же код и полностью функционирует. – Alan