- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于下面的代码片段:错误发生在 setObject: forKey:
response <--is an NSDictionary
if(response){
NSMutableArray *lifeArray = [[NSMutableArray alloc] init];
NSMutableDictionary *responseDict = [[NSMutableDictionary alloc] init];
responseDict = (NSMutableDictionary *)[response mutableCopy];
[responseDict setObject:@"life" forKey:@"label"]; <-- Error here
}
请注意,变量 responseDict
是 NSMutableDictionary
,因为它是通过 mutableCopy
复制的。
错误信息:
2014-11-12 12:16:08.534 Lifetape[84381:508759] -[__NSCFArray setObject:forKey:]: unrecognized selector sent to instance 0x7a2967002014-11-12 12:16:08.536 Lifetape[84381:508759] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray setObject:forKey:]: unrecognized selector sent to instance 0x7a296700'*** First throw call stack:( 0 CoreFoundation 0x028fbdf6 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x02557a97 objc_exception_throw + 44 2 CoreFoundation 0x02903a75 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277 3 CoreFoundation 0x0284c9c7 ___forwarding___ + 1047 4 CoreFoundation 0x0284c58e _CF_forwarding_prep_0 + 14 5 Lifetape 0x000dfb83 __50-[LTTimeLineTableViewController getTimeIntervals:]_block_invoke + 307 6 Lifetape 0x0014cedb -[MethodInvoker maybeInvokeCallback] + 395 7 Lifetape 0x0014d19f -[MethodInvoker receiveResultWithError:andResult:] + 399 8 Lifetape 0x00143e38 -[MeteorClient(Connection) livedata_result:] + 1544 9 Lifetape 0x00138674 __54-[MeteorClient(Connection) initConnectionWithOptions:]_block_invoke_3 + 2660 10 Lifetape 0x0014b2b5 -[MeteorClient didReceiveMessage:] + 197 11 Lifetape 0x0014eb7d -[ObjectiveDDP webSocket:didReceiveMessage:] + 269 12 Lifetape 0x0015d986 __30-[SRWebSocket _handleMessage:]_block_invoke + 102 13 libdispatch.dylib 0x031e941a _dispatch_call_block_and_release + 15 14 libdispatch.dylib 0x03209e1f _dispatch_client_callout + 14 15 libdispatch.dylib 0x031f0981 _dispatch_main_queue_callback_4CF + 610 16 CoreFoundation 0x02855f3e __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14 17 CoreFoundation 0x02814d40 __CFRunLoopRun + 2256 18 CoreFoundation 0x028141ab CFRunLoopRunSpecific + 443 19 CoreFoundation 0x02813fdb CFRunLoopRunInMode + 123 20 GraphicsServices 0x051a524f GSEventRunModal + 192 21 GraphicsServices 0x051a508c GSEventRun + 104 22 UIKit 0x00f41e16 UIApplicationMain + 1526 23 Lifetape 0x000ce36d main + 141 24 libdyld.dylib 0x03235ac9 start + 1)libc++abi.dylib: terminating with uncaught exception of type NSException
最佳答案
这里你的响应字典是一个 NSDictionary 类型的集合,所以它没有任何像 setObject 这样的选择器,这就是为什么它给你这个错误使用
if(response && [response isKindOfClass:[NSDictionary class]]){
NSMutableArray *lifeArray = [[NSMutableArray alloc] init];
NSMutableDictionary *responseDict = [NSMutableDictionary dictionaryWithDictionary:response];
[responseDict setObject:@"life" forKey:@"label"];
}
它会起作用,但要确保 response 是您的字典类型对象。因为您发布的错误清楚地表明您的响应是一个数组而不是字典。
关于ios - NSMutableDictionary setobject : forkey: crashes with unrecognised selector message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880988/
Swift 中的 CKRecord 类规范说明使用 setObject:forKey: 来设置 CKRecord 的值。但是我看到了很多带有 setValue:forKey: 的代码示例,它是 NSV
我使用 let userDefaults = UserDefaults.standard 设置了一些用户默认值,当我检索它们时,我可以使用以下任何一个: jobTextField.text = use
我正在尝试设置 NSMutableDictionary 深处的对象,我的意思是在我可以到达它们之前有几个级别的键。 显然我做不到 setObject:x forKey forKey forKey fo
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Where's the difference between setObject:forKey: and s
在查看文档时,我几乎看不出有什么大的不同。 “值”和“对象”都是 id 类型,因此可以是任何对象。 Key 曾经是一个字符串,在另一种情况下是一个 id。其中一个似乎保留了该对象,而另一个则没有。还有
由于 forKey 的值是 NSString,我在 Apple 文档中哪里可以找到所有可能值的完整列表?谢谢 最佳答案 方法 addAnimation:forKey: 并没有按照您的想法进行操作。 第
由于UIView动画是由CAAnimation支持的,所以我猜,当id执行UIView animateWithDuration:animations时,CALayer的addAnimation:for
我确信我在尝试编写的一个简单 iPhone 程序中遗漏了一些明显的东西,但代码看起来非常基本,我看不出有什么问题。 我正在尝试使用 NSMutableDictionary 来存储类列表及其关联的保存文
如果我使用dictionaryWithObjects:forKeys:,并且我的键数组恰好有重复项,会发生什么?我认为重复键的最后一个实例将是与该键关联的值;这是正确的吗? 最佳答案 The docs
我在控制台中遇到此崩溃: 2011-08-27 23:26:45.041 App[1672:3117] *** Terminating app due to uncaught exception 'N
This question already has answers here: Swift equivalent to `[NSDictionary initWithObjects: forKeys:
在我的项目中,我创建了一个包含对象和键的字典我为对象和键创建 NSArray 但是当我尝试创建字典时它会发送以下错误: * Terminating app due to uncaught except
这个问题在这里已经有了答案: Sort array into dictionary (5 个答案) 关闭 7 年前。 我有一个名为 animals 的 NSMutableArray。我需要创建一个
我对(例如)UIView 上的setValue:forKey 方法有疑问。 我有以下代码: let label = UILabel() label.layoutMargins = UIEdgeInse
在更改某些 UILabel 的框架时,我有一个神秘的 EXC_BAD_ACCESS。崩溃是随机的,通常我必须重复几分钟的条件。 启用 NSZombies 以及其他内存调试标志(NSDebugEnabl
在 Swift 中不可能使用 .setValue(..., forKey: ...) Int 之类的可空类型字段? 具有 enum 类型的属性 可空对象数组,如 [MyObject?] 对此有一种解决
我尝试使用函数 -setValue:forKey: 并使用 -valueForKey: 获取值 示例: NSArray *rootarr = [[NSArray alloc] init]; NSArr
我很好奇下面的代码片段中的 setValue:forKey: 发生了什么:它只是将指针设置为指向每个数组,类似于... [self setMyArray_1: animalArray]; [self
我的代码给出了一个错误提示 No visible interface for 'NSMutableDictionary' declares the selector 'addObjects:forKe
轨迹是这样的 Application received signal SIGSEGV Stack trace: #0 CoreFoundation 002B
我是一名优秀的程序员,十分优秀!