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

标签 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

为什么我投的时候数字会变?

最佳答案

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

关于ios - 为什么当我将 int 转换为 NSInteger 时值会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30812475/

相关文章:

ios - WKWebView session 已过期

ios - 添加到数组后,我的模型中的属性将针对每个项目进行复制

objective-c - iOS:如何在 SplitView 模板中动态更改 DetailView?

iphone - 应用程序加载程序警告 : The app references non-public selectors in Payload/<Appname>. app/<App name>: changeState:

c++ - 构造函数重载选择 cast operator 而不是 struct type

ios - 有没有更有效的方法来做到这一点?

ios - 使用 IQKeyboardManagers 时 UITextView 的高度增加

iphone - iOS 声音应用程序的 EQ 设置

arrays - 如何将 byte slice 段 (&[u8]) 的缓冲区转换为整数?

java - 当我想将 Type 转换到其 Sub 中进行克隆时,运行时出现 ClassCastException