为什么这不起作用:

NSInteger temp = 20;
[userSettingsFromFile setObject:temp forKey:@"aTemp"];

但这确实:

[userSettingsFromFile setObject:@"someObject" forKey:@"aTemp"];

如何使用NSInteger变量?

推荐答案

NSInteger不是一个对象——它只是在32位上类型转换为int或在64位上类型转换为long.由于NSDictionary只能存储对象,所以在存储之前需要将整数包装到对象中.试试这个:

NSInteger temp = 20;
[userSettingsFromFile setObject:[NSNumber numberWithInteger:temp] 
                         forKey:@"aTemp"]; 

Objective-c相关问答推荐

Objective-C:为什么[对象复制]的两个请求返回相同的结果?

iOS - 如何预加载键盘?

Objective-c 点表示法或方括号表示法中首选什么?

具有自定义视图的相机

Objective-C:在字符串中查找数字

ios 使用 AVFramework 捕获图像

如何在运行时向对象添加属性?

Objective-C 中的正式协议和非正式协议有什么区别?

iOS performSelectorOnMainThread 有多个参数

NSLocale 和国家名称

如何将 UInt32 设置为最大值

如何在目标 C 中创建单例类

isEqualTo: 和 isEqual 之间的区别:

Objective-C (cocoa) 等价于python的endswith/beginswith

Facebook 添加测试用户和管理员是:(待定),这是什么意思?

.m 文件中的空@interface 声明是做什么用的?

在 iPhone 上测量人体胀气( Human-Flatulence)传播波包

UIWebView didFinishLoading 多次触发

Xcode 7 UI 测试:如何在代码中消除一系列系统alert

如何从 UIColor 对象中获取红绿蓝 (RGB) 和 alpha?