【问题标题】:Objective-C: Assigning an Array Value as the key for a NSDictionaryObjective-C:分配一个数组值作为 NSDictionary 的键
【发布时间】:2012-09-17 09:50:53
【问题描述】:

我有一个属性列表 = DictionaryofAddresses,里面是一个 NSDictionary StoredAddr; StoredAddr 中的键是 Mac 地址,值是 RSI 读数数组。

我有一个数组 compareAddr(它包含一个 Mac 地址数组) 我想使用一个循环,其中 compareaddr[i] 的值将用作键,以匹配我的数组中的地址是否与我的字典中的任何键匹配。

NSArray *compareAddr = [DiscoveredAP allKeys];

for (int i = 0; i < [compareAddr count]; i++){

NSArray *RSIatAddr = [[dictionaryOfAddresses     objectForKey:@"StoredAddr"]objectForKey:compareAddr[i]];

以下代码给了我一个错误: 预期标识符

感谢您的帮助

【问题讨论】:

  • 你使用的是什么版本的 Xcode?​​span>
  • 另外,变量名应该以小写字母开头。
  • NSArray *RSIatAddr - Xcode 认为 RSIatAddr 是一个类,而不是一个对象。使用小写字母作为首字母。这应该是:rsiAtAddr.
  • @TomaszSzulc Xcode 不做任何假设。他可以毫无问题地使用大写字母(是的,这仍然是不好的做法,但在技术上并没有错)
  • compareAddr 如果是单个地址数组,那么它是数组数组吗?我不清楚。我认为您应该在for loop 上方声明您的RSIatAddr,并通过[RSIatAddr addObject:someObject] 将数据推送到此。

标签: objective-c ios arrays loops dictionary


【解决方案1】:

使用[compareAddr objectAtIndex:i] 而不是compareAddr[i]

【讨论】:

  • 我不明白为什么这被否决了。对我来说似乎是正确的答案。编辑:除非他使用新的 obj-c 下标的东西。我忘记了什么时候应该在 iOS 上可用。
  • 投反对票的人请注意,作者没有使用dictionaryOfAddresses[@"StoredAddr"]的新形式。
  • 对不起,我不知道谁投了反对票,谢谢你解决了这个问题,虽然它现在可以工作了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 2017-03-27
相关资源
最近更新 更多