我正在加載一個XML file,其中包含大約600個小數據集,大約有10,000行。數據被用作地圖上的註釋點。我正在使用TouchXML
庫來處理XML。這裏是我的代碼:將XML文件下載這段代碼爲什麼會崩潰?
NSData *XMLData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://skidmoreapps.com/darksky/fetch_info.php"]];
CXMLDocument *doc = [[[CXMLDocument alloc] initWithData:XMLData options:0 error:nil] autorelease];
NSArray *nodes = [doc nodesForXPath:@"//site" error:nil];
for (CXMLElement *node in nodes)
{
ObservationSite *site = [ObservationSite mapAnnotation];
[site setCoordinate:CLLocationCoordinate2DMake([[[[node elementsForName:@"lat"] objectAtIndex:0] stringValue] floatValue], [[[[node elementsForName:@"lng"] objectAtIndex:0] stringValue] floatValue])];
[site setTitle:[[[node elementsForName:@"name"] objectAtIndex:0] stringValue]];
[site setAddress:[[[node elementsForName:@"address"] objectAtIndex:0] stringValue]];
[site setUrl:[[[node elementsForName:@"name_l"] objectAtIndex:0] stringValue]];
[site setAffiliation:[[[node elementsForName:@"affil"] objectAtIndex:0] stringValue]];
[site setAffiliationUrl:[[[node elementsForName:@"affil_l"] objectAtIndex:0] stringValue]];
[site setOwner:[[[node elementsForName:@"owner"] objectAtIndex:0] stringValue]];
[site setFee:[[[node elementsForName:@"fee"] objectAtIndex:0] stringValue]];
[site setAccess:[[[node elementsForName:@"access"] objectAtIndex:0] stringValue]];
[site setSky:[[[node elementsForName:@"sky"] objectAtIndex:0] stringValue]];
[site setWeatherUrl:[[[node elementsForName:@"wx_l"] objectAtIndex:0] stringValue]];
[site setPads:[[[node elementsForName:@"pads"] objectAtIndex:0] stringValue]];
[site setParking:[[[node elementsForName:@"parking"] objectAtIndex:0] stringValue]];
[site setRestrooms:[[[node elementsForName:@"b_rooms"] objectAtIndex:0] stringValue]];
[site setSleep:[[[node elementsForName:@"sleep"] objectAtIndex:0] stringValue]];
[site setNotes:[[[node elementsForName:@"notes"] objectAtIndex:0] stringValue]];
[map addAnnotation:site];
}
後,它崩潰,出現此錯誤:
什麼是拋出的實際異常?讓它完全崩潰在斷點之外。它應該說'對象確實響應了選擇器'或其他東西。 – 2011-03-13 20:40:12
這條線看起來像是從先前的迭代節點實現中遺留下來的: CXMLElement * node = [nodes objectAtIndex:i]; – kennbrodhagen 2011-03-13 20:47:24
Squeegy,我沒有設置任何斷點,所以我猜TouchXML有斷點?我如何擺脫它們? – 2011-03-13 20:56:48