NSDictionary长度:发送给实例的无法识别的select器

嗨,大家好我想parsing一些XML数据到我的tableview并得到这个失败:无法识别的select器发送到实例。 我有一个XMLReader类用于转换XML到NSDictionary,我从这个网站: http : //ios.biomsoft.com/2011/09/11/simple-xml-to-nsdictionary-converter/我怎么能应用工作?

- (void)viewDidLoad { [super viewDidLoad]; feeds = [[NSMutableArray alloc] init]; NSURL *url = [NSURL URLWithString:@"yxz"]; //get content of url NSURLRequest* request=[NSURLRequest requestWithURL:url]; NSURLResponse*response; NSError *error; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if (error) { NSLog(@"ERROR: %@",error); } // NSLog(@"data: = %@",data); NSString* dataAsString =[[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding]; //NSLog(@"dataAsString= %@",dataAsString); //parse content feeds = [[NSMutableArray alloc]init]; NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:dataAsString error:&error]; if(xmlDictionary==nil){NSLog(@"ERROR: Dictionary is NULL");} else{ if ([xmlDictionary objectForKey:@"OrderList"]==nil) {NSLog(@"OrderList not found");} else{ if([[xmlDictionary objectForKey:@"OrderList"]objectForKey:@"Order"]==nil) {NSLog(@"No Orders");} else { feeds = [[xmlDictionary objectForKey:@"OrderList"]objectForKey:@"Order"]; } } } NSLog(@"XMLDictionary: %@",xmlDictionary); } 

XML示例(删除了不重要的值)

 <?xml version="1.0" encoding="ISO-8859-1"?> <OrderList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xyz/schema/OrderListSchema.xsd"> <Order> <ID></ID> <Name></Name> <Payment></Payment> <Marge></Marge> <CountryISO2></CountryISO2> <Status ></Status> </Order> 2014-04-09 16:42:16.786 djisjdk[714:60b] -[__NSDictionaryI length]: unrecognized selector sent to instance 0x8c46d10 (lldb) bt * thread #1: tid = 0x287a, 0x015718b9 libobjc.A.dylib`objc_exception_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.3 frame #0: 0x015718b9 libobjc.A.dylib`objc_exception_throw 

– [__ NSDictionaryI长度]:无法识别的select器发送到实例

这个消息告诉你, NSDictionary (或者,特别是私有不可变子类__NSDictionaryI )接收到一个length方法的调用,它不响应。

'length'是一个调用string的常用方法,所以这是一个相当安全的赌注,那就是抛出exception的代码所期望的。 NSData也有一个length方法,但这似乎不太可能基于您的代码。

你需要通过代码来find你有一个字典,但代码需要一个string(或数据)。