Я должен делать что-то действительно явно неправильно, но я не вижу его.
Ответ 1
Двойной - это тип C, а не объект Objective-C. Следовательно, вы используете C casts:
double myDouble = 3.2;
int myInt = (int)myDouble;
Ответ 2
Простое преобразование, упомянутое выше, достаточно хорошо, хотя вы можете использовать функции floor() или ceil() до этого.
Ответ 3
intValue - это метод для экземпляра NSNumber.
Для типа шкалы типа int, double и float они не относятся к типу класса. Таким образом, у них нет методов. Некоторые языки, такие как С#, могут обернуть int или double как объект, и они могут быть переданы друг другу подпрограммой.
Ответ 4
double myDouble = 3.2;
int myInt = @(myDouble).intValue;