Значение атрибута ManagedObject изменяется на неожиданное значение после вызова сохранения - PullRequest
0 голосов
/ 10 января 2012

У меня есть атрибут synced типа Integer16 в моей модели данных ядра.Я пытаюсь установить значение synced на [NSNumber numberWithBool:YES], когда значение синхронизируется с этим на моем сервере, так же, как я это делаю на многих других подклассах управляемых объектов, которые есть в моем приложении.Проблема в том, что для этого конкретного класса, каждый раз, когда я вызываю [context save:], значение сбрасывается до [NSNumber numberWithBool:NO].

Я подозреваю, что у меня может быть другой экземпляр этого объекта в моем коде, гдесинхронизировано установлено на НЕТ, но я вполне уверен, что это не так.Может кто-нибудь предложить мне несколько советов, чтобы помочь решить эту проблему?

Спасибо!

1 Ответ

1 голос
/ 10 января 2012

Сложно без реального кода, но есть вещи, которые вы можете попробовать:

Переопределите сеттер и установите точку останова, чтобы вы могли видеть, когда она вызывается.

- (void)set<#Capitalized property name#>:(<#Property type#> *)value
{
    [self willChangeValueForKey:@"<#Property name#>"];
    [self setPrimitiveValue:value forKey:@"<#Property name#>"];
    [self didChangeValueForKey:@"<#Property name#>"];
}

ИЛИ попробуйте использовать KVO для той же цели (см., Когда значения изменяются)

[theObject addObserver:theObserver forKeyPath:@"keyPath" options:0 context:nil];

Убедитесь, что вы не переопределили willSave чем-либо, что меняет значение.


Убедитесь, что это точно тот же объект, который был сохранен / извлечен?

...