Just change your didExecuteWithIdentifyResults code as following and it won't crash...
Code:
- (void)identifyTask:(AGSIdentifyTask *)identifyTask operation:(NSOperation *)op didExecuteWithIdentifyResults:(NSArray *)results {
//clear previous results
[self.graphicsLayer removeAllGraphics];
if ([results count] > 0) {
//add new results
AGSSymbol* symbol = [AGSSimpleFillSymbol simpleFillSymbol];
symbol.color = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.5];
// for each result, set the symbol and add it to the graphics layer
for (AGSIdentifyResult* result in results) {
result.feature.symbol = symbol;
[self.graphicsLayer addGraphic:result.feature];
}
//set the callout content for the first result
//get the state name
NSString *stateName = [((AGSIdentifyResult*)[results objectAtIndex:0]).feature.attributes objectForKey:@"STATE_NAME"];
self.mapView.callout.title = stateName;
self.mapView.callout.detail = @"Click for more detail..";
//show callout
[self.mapView showCalloutAtPoint:self.mappoint forGraphic:((AGSIdentifyResult*)[results objectAtIndex:0]).feature animated:YES];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Identify Result"
message:@"No Result Found!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
//call dataChanged on the graphics layer to redraw the graphics
[self.graphicsLayer dataChanged];
}
Regards,
Nimesh
Bookmarks