2012-05-09 52 views
0

我想將一個NSNumber傳遞給一個UInt32變量,它似乎工作,但是當我去記錄UInt32的值時,我卡住了。將NSNumber傳遞給UInt32時出錯

這就是我的代碼的樣子。

if ([methodName isEqualToString:@"Manu"]) { 
     cacheNumber = [cacheValue objectForKey:@"Manus"]; 

     NSLog(@"%@", cacheNumber); // This produces the correct number 
    } 

    UInt32 CACHE_VALUE = [cacheNumber intValue]; 
    NSLog(@"%@", CACHE_VALUE); // This is where my thread gets stuck 

這是它,當我嘗試步驟通過第二NSLog的(如我有兩個日誌的斷點來檢查它們的輸出)產生所述消息。

單步直到退出功能objc_msgSend,其中沒有 行號信息。

任何幫助,將不勝感激

+0

問題出在你的NSLog。 CACHE_VALUE不是一個對象。 –

回答

2

您打印的NSString不是UINT。

NSLog(@"%lu", CACHE_VALUE); // This is where my thread gets stuck 
+0

ohh廢話..我應該看到.. ..我的壞。什麼是小菜。謝謝。 –

+0

很快就會接受你的答案。其實只是在xcode上試過這個,它告訴我使用@「%lu」......所以我更新了你的解決方案 –

0

當你記錄一個整數而不是一個對象,即。一個NSString,你應該使用%d(十進制)佔位符而不是%@(對象)。

NSLog(@"Value: %d", CACHE_VALUE);