Как преобразовать объекты NSNumber для вычислительных целей? - PullRequest
12 голосов
/ 26 ноября 2009

Я разрабатываю некоторый код, в котором я использую сканер, чтобы получить NSNumbers из строки, скажем, x и y.

Теперь я хочу вычислить что-то простое из x и y, скажем, z = 10.0 / (x + y / 60.0) /60.0). Я не могу сделать это напрямую, так как компилятору не нравятся обычные арифметические символы, применяемые к числовым объектам.

Итак, я попытался определить xD и yD типа double, а затем попытался преобразовать тип

xD = (двойной) x; yD = (двойной) y;

но это также дает ошибку компиляции. Как можно преобразовать объекты NSNumber для использования в обычных арифметических выражениях? Я много просматривал литературу и не нашел ответа.

Заранее спасибо за любую помощь.

Джон Донер

1 Ответ

32 голосов
/ 26 ноября 2009

Используйте методы "значения" класса NSNumber, такие как doubleValue.

// Initialized to something earlier
NSNumber * x, y;

//Convert NSNumbers to double
double xD = [x doubleValue]; 
double yD = [y doubleValue];

// You can now use regular arithmetic operators
double zD = 10.0 / ((x + y / 60.0) / 60.0);
...