Вам необходимо установить NSError *error = nil;
для обеспечения безопасности, в противном случае вы получите неопределенное место в памяти.
Как упомянуто gerry3, у вас, вероятно, нулевой управляемый объектный текст. Я бы порекомендовал изменить код на:
unaReg.valore = [NSNumber numberWithInt:val];
NSError *error = nil;
NSAssert(managedObjectContext != nil, @"Context is nil");
if (![managedObjectContext save:&error]) {
[myUtil manageError:[error localizedDescription]];
}
Это идеальное использование для операторов NSAssert, потому что вы можете использовать их для тестирования встроенных функций во время разработки и с помощью одного переключателя отключить их все для производства.
Если ваш managedObjectContext равен nil, вы получите ложный ответ от -save: и поскольку вы не установили ошибку в nil, она будет указывать на «что-то» в памяти, что приведет к путанице.