【问题标题】:Objective-C: 'unrecognized selector sent to instance' [duplicate]Objective-C:'发送到实例的无法识别的选择器'[重复]
【发布时间】:2014-04-15 14:42:13
【问题描述】:

我想为某个键设置对象的值,但我收到了这个奇怪的错误。 我也尝试使用 setValue 代替 setObject 并且 routenArray2 也得到了其中的密钥。

NSMutableArray *routenArray = [[NSMutableArray alloc] init];
NSMutableArray *routenArray2 = [[NSMutableArray alloc] init];

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
abfahrt,@"Abfahrt", ankunft, @"Ankunft", dauer, @"Dauer", route, @"Route", kennung, @"Kennung", nil];

[routenArray addObject:dict];

for (int j = 0; j < routenArray.count; j++) {

    NSNumber *lNumber = [indexArray objectAtIndex:j];
    int l = [lNumber intValue];

    if (l == i) {
          [routenArray2 addObject:[[routenArray objectAtIndex:j] copy]];
    }
}

NSString *kennungString = [NSString stringWithFormat:@"%d", k];

for (int i = 0; i < routenArray2.count; i++) {
      [[routenArray2 objectAtIndex:i] setObject:kennungString forKey:@"Kennung"]; //this line is the problem
}

【问题讨论】:

  • 你得到更详细的错误是什么 - 你得到的日志?为什么我可以看到k 而看不到声明?
  • 'NSInvalidArgumentException',原因:'-[__NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance' 这就是错误。 k 是一个整数
  • -1 表示未在原始问题中包含 exact and complete 错误消息,并且未识别失败的行。
  • @HotLicks 非常感谢。
  • 不客气!这是一堂非常便宜的课。

标签: ios objective-c nsmutablearray nsmutabledictionary


【解决方案1】:

使用

[routenArray2 addObject:[[routenArray objectAtIndex:j] mutableCopy]];

代替

[routenArray2 addObject:[[routenArray objectAtIndex:j] copy]];

copy返回NSDictionary,你需要mutableCopy返回NSMutableDictionary

【讨论】:

  • 这行得通,非常感谢你刚刚完成了我的文凭项目;)
  • 很高兴能帮上忙,user3298017
【解决方案2】:

试试这个:

NSMutableDictionary *newDict = (NSMutableDictionary *)[routenArray2 objectAtIndex:i];
[newDict setObject:kennungString forKey:@"Kennung"];

【讨论】:

    【解决方案3】:

    尝试在赋值中进行类型转换

    [(NSMutableDictionary *)[routenArray2 objectAtIndex:i] setObject:kennungString forKey:@"Kennung"];
    

    【讨论】:

    • 同样的错误..
    猜你喜欢
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2013-05-18
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    相关资源
    最近更新 更多