2014-02-24 39 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

相关问题