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