Objective c “无法识别的选择器已发送到实例”异常错误

Objective c “无法识别的选择器已发送到实例”异常错误,objective-c,ios,Objective C,Ios,我已经阅读了所有发送到实例的未识别选择器的答案,但它们似乎不适用于我的情况 我已经建立了一个NSMutableDictionary,就像这样 NSMutableDictionary *ObjectDynamic = [NSDictionary dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil]; 然后在代码后面的某个点上,我试图添加另一个对象/键,用这个 [ObjectDynamic set

我已经阅读了所有发送到实例的未识别选择器的答案,但它们似乎不适用于我的情况

我已经建立了一个NSMutableDictionary,就像这样

  NSMutableDictionary *ObjectDynamic = [NSDictionary dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
然后在代码后面的某个点上,我试图添加另一个对象/键,用这个

[ObjectDynamic setObject:mySprite forKey:@"pSObject"];
但我在这一行遇到了一个例外

-[\uu\nsyi setObject:forKey:]:发送到实例的选择器无法识别

不可能添加另一个这样的键/值对吗

编辑


简单的错误,我只是想做一本NSDictionary而不是NSMutableDictionary!无论如何,感谢您的回答。

为了能够更改词典的内容,您需要制作NSMutableDictionary,而不是不变的NSDictionary:


为了能够更改词典的内容,您需要使NSMutableDictionary而不是不变的NSDictionary:


这是因为您初始化了一个不可变的NSDictionary,它没有setObject:forKey:method。改为初始化可变的:

NSMutableDictionary *ObjectDynamic = [NSMutableDictionary 
    dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
由于Xcode 4.4,您还可以使用新的字典文本非常轻松地初始化不可变字典,然后使用mutableCopy


注意,在Objective-C中,变量名应该以小写字母开头。

这是因为您初始化了一个不可变的NSDictionary,它没有setObject:forKey:method。改为初始化可变的:

NSMutableDictionary *ObjectDynamic = [NSMutableDictionary 
    dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
由于Xcode 4.4,您还可以使用新的字典文本非常轻松地初始化不可变字典,然后使用mutableCopy


注意,在Objective-C中,变量名应该以小写字母开头。

Oops,这将使我学会不要在早上5点编码:Oops,这将使我学会不要在早上5点编码:我已经阅读了发送给实例答案的所有未识别选择器,但它们似乎不适用于我的情况。是的。它们都说了同样的话:这个对象不是你认为它是的类的实例。相信错误消息:它告诉您这个对象实际上是什么类。然后试着去理解这个对象是怎么变成了错误的类的。是的,我现在可以看到,但是直到凌晨才看到,只是错过了。我已经阅读了所有发送到实例的未识别选择器的答案,但它们似乎不适用于我的情况。是的。它们都说了同样的话:这个对象不是你认为它是的类的实例。相信错误消息:它告诉您这个对象实际上是什么类。然后试着去理解这个对象怎么会是错误的类。是的,我现在可以看到,但是直到凌晨才看到,只是错过了。啊,对,对,这类似于我在AS3中设置对象的方式,很有趣。啊,对,对,这类似于我在AS3中设置对象的方式,很有趣。
NSMutableDictionary *objectDynamic = [@{@"pFObject" : pObject, 
                                        @"tFObject" : tObject} mutableCopy];