2014-03-12 52 views
0

這可能是一個普通的問題,但我想知道最佳實踐。 自升級到Xcode 5.1以來,由於arm64開關的原因,我收到了很多關於從NSInteger(又名'long')到'int'丟失整數精度的警告。Xcode 5.1 NSInteger int,精度損失

我一直類型轉換,到目前爲止,擺脫了警告,例如:

int number = (int)[self.arrayOfUsers count]; 

,或者我應該只使用

long number = (int)[self.arrayOfUsers count]; 

這是「好」?我現在應該主要使用多頭嗎?

謝謝!

回答

6

你應該使用正確的數據類型做:

NSUInteger number = [self.arrayOfUsers count]; 

不要無謂地轉換成類似int。使用正確的類型。

+0

ahh ...我想我應該只是不使用'int'似乎 – Alan

+0

它總是最好使用相同的數據類型。 – rmaddy

+0

謝謝!我將開始使用NSUInteger – Alan

0

只需使用同一類型的,如果你可以:

NSUInteger number = [self.arrayOfUsers count]; 

你的第一個建議:

int number = (int)[self.arrayOfUsers count]; 

還將只要你確定做工精細,該陣列的數量將永遠不會超過整數限制(2^31-1)。

+0

除了'count'方法返回一個'NSUInteger',而不是'NSInteger'。 – rmaddy