I am using sendSynchronousRequest and receiving data from a web server but the app is crashing while I am trying to parse the received data?
NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"data received from url: %@", data);
xmlParser = [[NSXMLParser alloc] initWithData: data];
[xmlParser setDelegate: self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
[xmlParser release];
But after [xmlParser parse];
the app crashes. I am getting the following:
2011-03-01 09:36:31.735 MasterApp[228:207] -[NSCFString bytes]: unrecognized selector sent to instance 0x5f6b000
2011-03-01 09:36:31.738 MasterApp[228:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString bytes]: unrecognized selector sent to instance 0x5f6b000'
*** Call stack at first throw:
(
0 CoreFoundation 0x0252eb99 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x0267e40e objc_exception_throw + 47
2 CoreFoundation 0x025306ab -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x024a02b6 ___forwarding___ + 966
4 CoreFoundation 0x0249fe72 _CF_forwarding_prep_0 + 50
5 Foundation 0x00114afc -[NSXMLParser parse] + 147
6 MasterApp 0x0000c731 -[identifierList getUrl] + 994
7 MasterApp 0x0000c306 -[identifierList actionSheet:clickedButtonAtIndex:] + 56
8 UIKit 0x0077047d -[UIActionSheet(Private) _buttonClicked:] + 258
9 UIKit 0x002dc7f8 -[UIApplication sendAction:to:from:forEvent:] + 119
10 UIKit 0x00367de0 -[UIControl sendAction:to:forEvent:] + 67
11 UIKit 0x0036a262 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
12 UIKit 0x00368e0f -[UIControl touchesEnded:withEvent:] + 458
13 UIKit 0x003003d0 -[UIWindow _sendTouchesForEvent:] + 567
14 UIKit 0x002e1cb4 -[UIApplication sendEvent:] + 447
15 UIKit 0x002e69bf _UIApplicationHandleEvent + 7672
16 GraphicsServices 0x02d8a822 PurpleEventCallback + 1550
17 CoreFoundation 0x0250fff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
18 CoreFoundation 0x02470807 __CFRunLoopDoSource1 + 215
19 CoreFoundation 0x0246da93 __CFRunLoopRun + 979
20 CoreFoundation 0x0246d350 CFRunLoopRunSpecific + 208
21 CoreFoundation 0x0246d271 CFRunLoopRunInMode + 97
22 GraphicsServices 0x02d8900c GSEventRunModal + 217
23 GraphicsServices 0x02d890d1 GSEventRun + 115
24 UIKit 开发者_如何学C 0x002eaaf2 UIApplicationMain + 1160
25 MasterApp 0x00001dbc main + 102
26 MasterApp 0x00001d4d start + 53
)
terminate called after throwing an instance of 'NSException'
Program received signal: “SIGABRT”.
Thank you in advance
You need to set up the parser based on the format of the data you recieve. To get started, Look at the NSXMLParser documentation and the NSXMLParserDelegate documentation. From those pages you can find helpful sample code, SeismicXML and LazyTableImages.
精彩评论