2014-02-24 34 views
1

在我的應用程序中,我正在使用JSON從MySQL數據庫中檢索數據。不兼容指針整數轉換'int'與'id'類型的表達式

其中一個表字段是idCategoria,類型爲integer。現在我試圖將idCategoria值分配給我的應用程序中的一個int變量,但是這顯示了一個編譯器警告。我已經登錄了categoriaID的值是143913536,但是應爲1

這是顯示警告:

Incompatible pointer to integer conversion initializing 'int' with an expression of type 'id' 

而且這是我正在試圖做到這一點:

int categoriaID = [categoriaDescription objectForKey:@"idCategoria"]; 
+1

編譯器診斷意味着您試圖將指針(「id」)指定給整數。如果你檢查NSDictionary的規範,你會發現它總是返回一個對象(或者nil),永遠不會是「標量」(比如int),並且你不能(合法地)給一個int '。所以你從字典中得到的是一個NSNumber對象,你需要用'intValue'方法來提取它的值。 –

+1

'NSString'也有一個'intValue'方法。也可能有其他基礎課程。當然也有可能存在自定義類的'intValue'方法。 – nhgrif

回答

20

嘗試:

int categoriaID = [[categoriaDescription objectForKey:@"idCategoria"] intValue]; 
+0

完美。我只是用這個來比較一個NSButton複選框的布爾默認值:'if([[defaults valueForKey:@「dnd」] intValue] == 1)' – hmedia1

相關問題