我可以从nsdictionary valuekey中施放原始性吗?



i具有代表编目的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。

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

这是将指针铸成int。因此疯狂的价值观。原语不能存储在目标C集合中。如果您在系统中的其他地方都有此内容,请查看NSNUMBER,并使用其类型的转换方法IntValue将Nsnumber从Nsdictionary中拉出。

最新更新