【问题标题】:iOS valueForKeyPath: NSstring not workingiOS valueForKeyPath:NSstring 不起作用
【发布时间】:2013-07-30 18:46:17
【问题描述】:

我正在尝试使用 nsstring 的值来获取字典的值。但不工作:

NSString *myPath = [[@"root." stringByAppendingString:subpath]autorelease];
NSDictionary *content = [xmlContent valueForKeyPath:myPath];

如果我使用@"....",它工作得很好。你们有谁知道为什么不起作用?或者是否有替代方法?

工作:

NSDictionary *content = [xmlContent valueForKeyPath:@"root.subpath"];

非常感谢您的帮助

【问题讨论】:

  • subpathNSString *myPath = [[@"root." stringByAppendingString:subpath]autorelease];中的内容是什么
  • stringByAppendingString 返回一个自动释放的对象,你不应该再次autorelease

标签: ios nsstring nsdictionary


【解决方案1】:

我想你正在寻找:

NSString *myPath      = [@"root." stringByAppendingString:@"subpath"];
NSDictionary *content = [xmlContent valueForKeyPath:myPath];

或使用:

NSString  *subpath    = @"subpath";
NSString *myPath      = [@"root." stringByAppendingString:subpath];
NSDictionary *content = [xmlContent valueForKeyPath:myPath];

【讨论】:

  • 这正是我在帖子中的内容。
  • @Juan:在你的代码中subpath 是 NSString 的一个对象(可能)你给它分配了什么?
  • po 子路径 $5 = 0x00822d34 子路径。子路径不为空
  • @Juan:好吧,我不是在说内存分配与否,有什么内容吗?即使内容是@"",也会有记忆,不代表你有正确的数据。 put NSLog(@"Yeah : %@",subpath);
  • @Juan:你有输出吗?
猜你喜欢
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 2014-07-07
相关资源
最近更新 更多