В Objective-C это чистый/безопасный подход к приведению типа, скажем, числа с плавающей запятой к целому числу с простым присвоением переменной с плавающей запятой переменной int и спецификатором формата %i в вызове NSLog?
Правильный способ сделать это — объявить приведенный тип следующим образом:
int x;
float y;
y = 7.43;
x = (int) y; //type cast (int)
NSLog(@"The value of x is %i", x);
Выход:
Значение х равно 7
Этот метод приведения типов был бы идеальным подходом, но я попытался просто присвоить переменную с плавающей запятой переменной int, и он работает так же, есть ли разница?
Это другой метод без (типа):
int x;
float y;
y = 7.43;
x = y; // no (int) casting for variable 'y' here
NSLog(@"The value of x is %i", x);
Выход:
Значение х равно 7
Как видите, результат тот же, в чем разница? оба метода хороши? что чище?
NSLog(@"The value of x is %i", y);
ожидать, что произойдет неявное преобразование из числа с плавающей запятой в целое -- этого не произойдет, и результат будет тарабарщиной (если вы на самом деле не вызовете сбой). Однако было бы законно сделатьNSLog(@"The value of x is %i", (int) y);
. - person Hot Licks   schedule 03.11.2013