/PushNotificationManager.m:43:111:隐式转换失去整数精度:'NSInteger'(又名'long')到'int'
答案 0 :(得分:4)
NSInteger
在64位系统上的大小(等于long
)大于int
。警告告诉您,在将NSInteger
转换为int
时,您可能会丢失信息。您可以通过类型转换为(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.