NSURLConnection sendSynchronousRequest сбой разбора данных - PullRequest
0 голосов
/ 28 февраля 2011

Я использую sendSynchronousRequest и получаю данные с веб-сервера, но происходит сбой приложения, когда я пытаюсь проанализировать полученные данные?

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];  

Но после [xmlParser parse]; приложение вылетает.Я получаю следующее:

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                               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”.

Заранее спасибо

1 Ответ

1 голос
/ 28 февраля 2011

Вам необходимо настроить анализатор на основе формата данных, которые вы получаете. Для начала посмотрите документацию NSXMLParser и документацию NSXMLParserDelegate . На этих страницах вы можете найти полезный пример кода SeismicXML и LazyTableImages .

.
...