我已经阅读了所有“发送到实例的无法识别的选择器”的答案,但它们似乎不适用于我的情况。
我已经设置了一个像这样的 NSMutableDictionary ......
NSMutableDictionary *ObjectDynamic = [NSDictionary dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
然后在稍后的代码中,我试图添加另一个对象/键,用这个......
[ObjectDynamic setObject:mySprite forKey:@"pSObject"];
但是我在那条线上遇到了一个异常(exception),...
-[__NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance
不能像这样添加另一个键/值对吗?
编辑
一个简单的错误,我只是想制作一个 NSDictionary 而不是 NSMutableDictionary!无论如何,感谢您的回答。
最佳答案
那是因为你初始化了一个不可变的 NSDictionary,它没有 setObject:forKey:
方法。改为初始化一个可变的:
NSMutableDictionary *ObjectDynamic = [NSMutableDictionary
dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
从 Xcode 4.4 开始,您还可以使用新的字典文字来非常轻松地初始化不可变字典,然后使用
mutableCopy
.NSMutableDictionary *objectDynamic = [@{@"pFObject" : pObject,
@"tFObject" : tObject} mutableCopy];
请注意,在 Objective-C 中,您应该以小写字母开头的变量名。
关于objective-c - "unrecognized selector sent to instance"异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290859/