【发布时间】:2013-07-10 06:49:23
【问题描述】:
我有一个用 JSON 填充的 NSDictionary。这一切看起来都很棒,而且它部分为我工作。我正在设置我的类的 NSString 类型的属性,该属性等于某个键的值,奇怪的是,这将我的属性设置为等于一个对象,该对象是我需要的字符串值。
字典(印刷说明):
miscInfo:
<__NSArrayI 0x7494ab0>(
{
Abbreviation = DR;
DateInactive = "";
Description = Drowsiness;
ForQueue = 2430;
IsAdditive = 0;
IsReserved = 1;
MiscCodeTypeStr = AVR;
PluralDescription = "";
ReservedDescription = Drowsiness;
}
我将它设置在我的财产上,如下所示:
self.ReactionName = [miscInfo valueForKeyPath:@"Description"];
产生:
我尝试将其转换为 NSString,例如:
self.ReactionName = (NSString*)[allergenAdverseReaction valueForKeyPath:@"Description"];
但什么都没有。我做错了什么?
【问题讨论】:
-
您是否看到了一些错误,或者您只是对在调试器中看到的内容感到困惑?
-
不,完全没有错误。我也设置了类似的属性,但不是我说“@'1 object'”的地方,其他人说我所追求的名字,在这种情况下是“嗜睡”
-
你能不能运行
NSLog(@"%@", NSStringFromClass([[miscInfo valueForKeyPath:@"Description"] class]));看看它说了什么。 -
当 objectForKey 也能正常工作时使用 valueForKeyPath 是不明智的。它更容易混淆而不是简化。
标签: ios objective-c json