2013-11-19 6 views
1

У меня есть программа, где я сохранить целочисленное значение следующим образом:Сохранение и извлечение данных из основных данных

client.oldId = [clientDict objectForKey:@"oldId"]; 

На данный момент при отладке значение, сохраненное «supposely» является 31.

При попытке получить этот элемент с помощью контекста, и я получить его следующим образом:

int oldId = [NSNumber numberWithInt:client.oldId]; 

становится 174806944, почему это могло произойти ?, нет суммирования операций или что-нибудь подобное для этого я tem и right до того, как он сохранит в контексте, это 31.

Любая помощь будет оценена по достоинству.

ответ

1

установить переменную в 0, прежде чем установить его

int oldId = 0 
oldid = [NSNumber numberWithInt:client.oldId]; 

иногда вы можете получить мусор в ячейку памяти, которая может привести к этому.

Обновлено Ответ: Хотя технически иногда я обнаружил, что если вы не очистите целое число, я получаю то же самое. В этом случае он установил int на номер NSNumber. Правильный путь должен был взять NSNumber и получить его integerValue так:

[client.oldId intValue] 
+0

Здравствуйте, спасибо, я попробовал это все тот же вопрос. Его просто weird – user710502

+0

попробуйте очистить client.oldid, а также перед его установкой – logixologist

+0

Если я вижу 'client.oldId' - это NSNumber (я предполагаю) ... почему бы не так сделать? OldId = [client.oldId intValue ] ' – logixologist

Смежные вопросы