【问题标题】:setObject ForKeysetObject ForKey
【发布时间】:2023-03-14 20:04:01
【问题描述】:

我正在尝试将 plist 合并到我的项目中。我已经完成了从 plist 到我的项目的数据提取。现在我想写回修改后的数据。例如,我有一个文本字段,其中数据存储为整数。现在我想捕获该整数数据并将其存储在 NSMutable Dictionary *temp 中,使用:

[temp setObject:<what goes here?> forKey:@"key"];

在将其全部写入 plist 之前。我最终得到的只是指针信息,而不是字典中 textField 的值。我正在使用以下内容来检查字典:

for (id key in temp) {
 NSLog(@"entry %@ value %@", key, [temp valueForKey:key]);
}

【问题讨论】:

  • 吉姆·罗杰斯学习可可。听起来很合理。毕竟,可可是一种商品!

标签: cocoa


【解决方案1】:

你想要的是这样的:

[temp setObject:[NSNumber numberWithInteger:[textField integerValue]] forKey:@"key"];

如果您正在为 OS X 编写代码。

或者类似的东西:

[temp setObject:[NSNumber numberWithInteger:[textField.text integerValue]] forKey:@"key"];

如果您正在为 iOS 编写代码。

只是为了确保 OP 不会错过 edc1591 的评论:NSDictionary 实现了一个方法 objectForKey:,应该使用该方法来支持通用 KVC 方法 valueForKey:。有关objectForKey:valueForKey: 的更多信息,请参阅this answer

编辑:忽略 OP 提到的值是整数。固定答案。 编辑:在 valueForKey: 用法上添加了注释。

【讨论】:

  • OP 说 ...我想捕获该整数数据...。好像[temp setObject:[NSNumber numberWithInteger:[textField integerValue]] forKey:@"key"]; 会更好。
  • 另外,他在读字典时需要使用objectForKey:而不是valueForKey:
  • @edc1591:是的,注意到了,但忽略了它,因为它与 OP 问题/问题没有严格相关。但你是完全正确的,当然。在我的回答中添加了备注。
猜你喜欢
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多