Получение ошибки NSDecimalNumberOverflowException - PullRequest
0 голосов
/ 22 сентября 2011

Я получаю сообщение об ошибке в строке: if (! [self.event.managedObjectContext save:&error]). Это происходит только тогда, когда пользователь не вводит другой номер в textField, поэтому это 0.

- (void)viewWillAppear:(BOOL)animated
{
    self.textField.text = 0;   
    [super viewWillAppear:YES];
}

- (void)addProperty
{
    NSDecimalNumber *decimal = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%@", self.textField.text]];
    event.carPayment = decimal;

    NSError *error = nil;
    if (! [self.event.managedObjectContext save:&error]) 
    {
        // Handle the error.
    }
    NSLog(@"%@", error);
}

Error: 2011-09-21 20:31:28.101 Calculator[2391:707] Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  NSDecimalNumber overflow exception with userInfo (null)

2011-09-21 20:31:28.144 Calculator[2391:707] *** Terminating app due to uncaught exception 'NSDecimalNumberOverflowException', reason: 'NSDecimalNumber overflow exception'

1 Ответ

0 голосов
/ 25 сентября 2011

Я не могу точно сказать, что вы пытаетесь сделать, но как насчет использования синтаксиса try-catch для обработки исключения и отображения пользователю сообщения о том, что значение не может быть равно 0. Это предполагает, что это действительно так не разрешено быть 0 или не имеет смысла для него быть 0. Если имеет смысл для него быть 0, то try-catch, вероятно, не то, что вы после.

...