У меня есть рабочий код, который получает веб-сервис обновлений, принимает решение об обновлении или создает новый, но обновление не работает. (Здесь я прочитал десятки других вопросов, в том числе один здесь это то, за чем я следую.Другим примером является принятый ответ здесь< /а>)
SaveContext: ниже выполняется без ошибок и без запроса (с использованием уровня отладки 2)
Возвращенный массив с 19 в качестве желаемой записи. От 1_:
<_PFArray 0xa349280>(
{
address = "an address";
companyName = "the Name";
email = "[email protected]";
fname = "first name";
inserted = "2014-05-01 04:00:00 +0000";
level = 3;
lname = "last name";
num = 19;
phone = "phone #";
tax2 = "tax number";
}
Обобщить:
- В saveContext не выполняется запрос к Core Data
- Никакие ошибки не выдаются в отладчике или saveContext
- Изменения НЕ сохраняются в Core Data
- Массив
results
представляет собой _PFArray - Я думаю, что проблема связана с объектом
existingObject
. Это неправильная ссылка на manageObjectContext.
Что мне нужно, чтобы saveContext сохранил данные?
** РЕДАКТИРОВАТЬ: ** Я сузил это до того, что existObject
НЕ является правильным типом, но я все еще ищу причину, по которой это не managedObjectContext
.
Вот метод извлечения. Возможно, проблема здесь:
- (NSArray *)performFetchInEntity:(NSString *)entity withPredicate:(NSString *)predicate {
NSManagedObjectContext *context = self.managedObjectContext;
// Create the fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity: [NSEntityDescription entityForName:entity
inManagedObjectContext:context]];
// This next line should NOT be used !!!
// [fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setReturnsObjectsAsFaults:NO];
if (predicate)
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:predicate]];
// Execute the fetch.
NSError *error;
NSArray *result = [context executeFetchRequest:fetchRequest
error:&error];
NSLog(@"returned: %@", [result objectAtIndex:0]);
if (!error)
return result;
else
return nil;
}