- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下内容
// this code is inside cellForRowAtIndexPath for a TableViewController
id answer = [self.answers objectAtIndex:indexPath.row];
if ([answer respondsToSelector:@selector(objectForKey)]) {
cell.textLabel.text = [answer valueForKey:@"answer_id"];
} else {
// I'm ending up here, instead of the cell.textLabel being set
[NSException raise:@"Answer is of invalid class" format:@"It should be able to respond to valueForKey, class: %@", [answer class]];
}
其中 self.answers
设置为
// the question that gets passed here is a parsed single object
// from the `/questions` path
- (NSArray *)answersForQuestion:(NSDictionary *)question {
NSString *contents = [self loadContentsForPath:[question valueForKey:@"question_answers_url"]];
valueForKey:@"question_answers_url"]];
NSDictionary *data = [contents JSONValue];
NSArray *answers = [data valueForKey:@"answers"];
return answers;
}
- (NSString *)loadContentsForPath:(NSString *)path {
NSString *wholeURL = [@"http://api.stackoverflow.com/1.1" stringByAppendingString:path];
return [NSString stringWithContentsOfURL:[NSURL URLWithString:wholeURL] encoding:NSUTF8StringEncoding error:nil];
}
我正在做完全相同的事情来加载问题,效果很好,但看起来当我尝试执行 [answers valueForKey:@"answer_id"]
时无法回答。
我认为这不是 JSON 解析器的问题,因为它适用于 /questions
数据。
当调试器因异常而停止时,当我尝试右键单击 -> Print Description on answers
时,我得到了
Printing description of answer:
<CFBasicHash 0x6ec1ec0 [0x1474b38]>{type = mutable dict, count = 13,
entries =>
1 : <CFString 0x6ec57d0 [0x1474b38]>{contents = "down_vote_count"} = <CFNumber 0x6e1dc00 [0x1474b38]>{value = +0, type = kCFNumberSInt32Type}
2 : <CFString 0x6ec4ee0 [0x1474b38]>{contents = "last_activity_date"} = <CFNumber 0x6ec5780 [0x1474b38]>{value = +1326379080, type = kCFNumberSInt64Type}
3 : <CFString 0x6ec44b0 [0x1474b38]>{contents = "community_owned"} = <CFBoolean 0x1474f68 [0x1474b38]>{value = false}
...
这对我来说似乎是一个普通的散列。我尝试了 objectForKey
和 valueForKey
但它们都不起作用,即
exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x6b2a330'
当我做的时候
cell.textLabel.text = [answer objectForKey:@"answer_id"];
最佳答案
:
是方法名的一部分,所以需要做:
if ([answer respondsToSelector:@selector(objectForKey:)]) {
然后使用objectForKey:
,而不是valueForKey:
。第一个是访问字典中的对象,第二个是所谓的 Key-Value Coding。所以它是:
id answer = [self.answers objectAtIndex:indexPath.row];
if ([answer respondsToSelector:@selector(objectForKey:)]) {
cell.textLabel.text = [answer objectForKey:@"answer_id"];
} else {
[NSException raise:@"Answer is of invalid class" format:@"It should be able to respond to objectForKey:, class: %@", [answer class]];
}
最后但同样重要的是,您从 answer
字典中得到的对象看起来是一个 NSNumber
,而不是一个 NSString
。因此,您可能希望将文本设置更改为:
cell.textLabel.text = [[answer objectForKey:@"answer_id"] description];
关于iphone - NSDictionary 没有响应 objectForKey 和 valueForKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8836881/
当我使用此代码从名为“fileList”的文件名数组中获取字符串时,我取得了成功: cell.timeBeganLabel.text = [[[self.fileList objectAtIndex:
我正在尝试存储一些值来使用它们,但我正在编写这段代码,并且在控制台中打印了值,但是当我尝试将该值分配给 dateComp.day 时,它返回 nil,而我没有知道为什么,零你知道为什么会发生这种情况吗
正在尝试检查项目中数据的有效性(项目是 NSDictionary) 我认为这应该可行,但我确实进入了第二个 if 并崩溃了: 发送到实例的无法识别的选择器因为 galleryArr 是 (null)
在文档中 https://www.parse.com/docs/ios/guide#relations-using-pointers它说在提供的示例中,您可以找到创建游戏的用户 // say we h
我在运行代码时遇到错误。罪魁祸首是我从下面的 plist 访问字符串: NSString *sImageFile = [dictionary objectForKey:@"answerCorr
大家好!当我构建这个时,我在 objectForKey 上收到警告...警告说; “从不兼容的指针类型传递‘objectForKey:’的参数 1”有谁知道如何解决这个问题吗? - (void)rev
我有一个类,用于在数组中设置对象。在这个类中,我有一个自定义的“initWithDictionary”,我在其中解析 JSON 字典。但是,当我遇到 NSNull 时,这会使我的应用程序崩溃。为了解决
我有这段代码来读取首选项。控制台输出为1,但窗口未设置为NSModalPanelWindowLevel。我尝试使用 1 而不是 @"1",但这也不起作用。 NSUserDefaults *defaul
[我已经阅读了 Cocoa 内存管理规则,但仍然想确定,并且想知道这是否是好的形式。] 我的类有一个可变字典 ivar: NSMutableDictionary *m_Dict; ... m_Dict
这是我的代码: override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) state
-(NSMutableDictionary *)request:(NSString *)requestString { NSString *filepath = [[NSBundle main
我正在尝试做一些相对简单的事情。我的 bundle 中有一个 .plist,我正在尝试将其加密保存到文档目录中。现在,在我尝试添加加密之前,它运行良好。然而,新的崩溃又出现了。 这是我保存 .plis
我正在尝试使用以下代码加载 UIButton 和 UITextField,其中包含基于单击的 UISegmentedControl 的当前段的信息,但它会导致 SIGABRT 崩溃。这是代码: - (
我想用其他值替换数组的内容, 这是我的数组值: [Arr objectAtIndex:i] = "End_Date" = "31 Mar 2014";
我有一部分代码返回 numberOfRowsInSection。 代码 for (NSDictionary *consoleDictionary in [self arrayFromJSON]) {
我正在尝试使用从我的服务器作为 JSON 响应获得的字典。当我打印字典的描述时,一切都井井有条 Printing description of dict: { category = 1
我基本上得到这个错误 'NSInvalidArgumentException', reason: '-[__NSCFConstantString objectForKey:]: unrecognize
长话短说,我正在查看我的 32 位 iPhone 应用程序中的性能问题。在此过程中,我删除了将我限制为 32 位的第 3 方库,当我为 arm64 构建时,我发现与所述库无关的一段代码速度提高了 2
我刚刚注意到我的 **NSUserDefaults** 中存在一个键经常返回 nil。好像有一半的时间正确的,另一半不是。我说了一半,但我没有意味着它的翻转,它只有 40-50% 我认为它不起作用。当
我有一个带有 UIViewController 的 iOS 项目,其中包含一个名为 sizeSegmentedControl 的 UISegmentedControl。我希望 sizeSegmente
我是一名优秀的程序员,十分优秀!