当我将int转换为NSInteger时,为什么值会发生变化?

时间:2015-06-12 21:31:37

标签: ios objective-c casting int nsinteger

我有一个NSDictionary,我为密钥 resource_type_id 执行 objectForKey

NSInteger resourceTypeID = [self.selectedDictionary objectForKey:@"resource_type_id"];

当我在控制台中打印 resourceTypeID 时,它会返回 2 (正确的ID)。

现在,我需要将此NSInteger转换为 int 以输入我的switch case语句。

以下是代码:

self.resourceTypeLabel.text = [ResourceType getResourceTypeFromResourceTypeID:(int)resourceTypeID];

但是,当我这样做时, self.resourceTypeLabel.text 会返回 nil 。 经过进一步检查,在控制台中打印(int)resourceTypeID 时,它会返回 35

为什么我投出时数字会发生变化?

1 个答案:

答案 0 :(得分:1)

-objectForKey:应该返回id类型的对象,而不是int。你是如何设定价值的?