2012-09-14 35 views
2

我使用this code從一個人iphone - 格式說明

在這段代碼的中間

,我們有

- (NSString *)hexStringFromColor { 
     return [NSString stringWithFormat:@"%0.6X", self.rgbHex]; 
} 

這是工作的罰款,直到Xcode的4.4。現在,我看到這個錯誤: 格式指定了類型unsigned int,但參數的類型爲UInt32(又名無符號長整數)。

爲什麼Xcode在4.4中抱怨而不是之前?我應該使用什麼說明符?

感謝。

回答

2

由於rgbHex似乎是一個unsigned long,正確的格式說明是@"%0.6lX"其中l代表long

List of iOS String Format Specifiers

+0

self.rgbHex是一個UInt32。 – SpaceDog

+0

@DesperateDeveloper你使用的代碼是否保持不變?一些第三方庫重新定義了UInt32,所以如果你包含任何這些,事情可能會像這樣爆炸。 –

+0

@DesperateDeveloper無論哪種方式,錯誤消息說編譯器將UInt32等同於「unsigned long」,這意味着您需要長格式的格式說明符。 –

2

嘗試%0.6lX,其中'l'指定以下'X'是長整型而不是整型。如果該值實際上很長,您也可以使用ll

enter image description here

+0

self.rgbHex是一個UInt32。 – SpaceDog