NSDecimalNumber cra sh если ноль - PullRequest
0 голосов
/ 24 февраля 2020

Я схожу с ума от этой проблемы. Если вы попытаетесь выполнить какую-либо операцию с NSDecimalNumber и не инициализировали ее, это вызовет cra sh. Основная проблема заключается в том, что если вы инициализируете его в одной части своего кода, но затем используете его в другой части, вам всегда нужно проверять состояние инициализации.

Вы можете инициализировать все свои NSDecimalNumber в viewDidLoad или где бы ни начинался ваш файл, но я чувствую, что должен быть другой более простой способ. Apple не рекомендует использовать системный метод, так как лучше всего избежать подобных сбоев? Вы действительно должны всегда проверять?

Пример:

NSDecimalNumber *x = [NSDecimalNumber zero];
NSDecimalNumber *y;

[x decimalNumberByAdding:y];

Этот cra sh, потому что y не инициализирован. Это кажется очевидным, но если x объявлен в верхней части вашего кода и вы инициализируете его только там, где он вам нужен в первый раз, вы рискуете использовать его в другом месте до его инициализации.

Я бы хотел что-то такое, что принять ZERO в качестве значения по умолчанию для неинициализированных NSDecimalNumber (s)

...