我可以从NSDictionary valueForKey转换基元吗?

时间:2012-10-21 02:33:53

标签: ios

我有一个表示catalogid的int变量。变量在块之外声明,如下所示:

int catalogId = [vegetableService getCurrentCatalogNumber];

在街区内我做了类似的事情:

 int serverCatalogId = (int) [obj valueForKey:@"CatalogId"];

                if(catalogId < serverCatalogId)
                {   
                    catalogId = serverCatalogId;
                }

这当然导致错误,该变量必须是__block类型。所以我声明了这样的目录:

__block int catalogId = [self getCurrentCatalogNumber];

但是现在我得到了像196758而不是1,2,3这样奇怪的值。

1 个答案:

答案 0 :(得分:1)

int serverCatalogId = (int) [obj valueForKey:@"CatalogId"];

这是一个指向int的指针。因此疯狂的价值观基元不能存储在目标C集合中。如果在系统的其他地方有这个,请查看NSNumber并使用其类型转换方法intValue从NSDictionary中提取NSNumber。