objective-c - "unrecognized selector sent to instance"异常错误

标签 objective-c ios

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

我已经设置了一个像这样的 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/

相关文章:

ios - if 语句中的错误 bool 结果

ios - 动画贝塞尔曲线就像在 iPhone 屏幕上进行绘图一样

objective-c - QTKit奇怪的错误

iphone - 类 'Foo' 的重复接口(interface)声明

ios - 为什么 UISwitch onImage/offImage 属性在 iOS 7 上不起作用?

iphone - iOS 帮助 : loaded the nib but the view outlet was not set

iphone - iOS上如果一个view有好几层,drawRect是不是只能选择一个层显示?

ios - ssl中Client Hello包中mshkg000019.blob.core.windows.net的含义

IOS/objective-C : Set NSItemProvider

iphone - 如何绘制圆角矩形标签或 View ?