2014-02-03 5 views
-1

может кто-нибудь помочь мне я ставлю гм pushwoosh и я получаю эту ошибкунеявного преобразования теряет целое точность

/PushNotificationManager.m:43:111: Неявное преобразование теряет целочисленную точность: «NSInteger» (он же «длинную ') до' int '

+1

Сообщение исходный код, пожалуйста – etolstoy

+1

Использовать переменные типа 'NSInteger' для хранения целых чисел вместо' int's. –

ответ

4

NSInteger имеет больший размер (равный long) на 64-битных системах, чем int. Предупреждение сообщает вам, что вы можете потерять информацию при преобразовании NSInteger в int. Вы можете подавить предупреждение с помощью typecasting до (int), но затем вы можете неожиданно найти странные вычисления из-за потери точности. Лучше использовать NSInteger вместо int для всех целых переменных. См. Также When to use NSInteger vs. int для более подробного обсуждения.

неявной против явного:

NSInteger myLong = 11234; 
int myInt = myLong; // implicit 
int myInt2 = (int)myLong; // explicit by typecasting; you should know why you do this. 
+0

Может ли кто-нибудь подключиться к моему mac через teamviever, я не уверен, как это сделать? мой Skype: elvarpall – user3244096

+0

Вы не знаете, как вы можете изменить переменную от int до NSInteger? Просто перейдите к строке Xcode, которая дает вам предупреждение. И при необходимости, тип. – Volker

+0

Я не могу найти его – user3244096

Смежные вопросы