2013-11-27 1 views
0
#import "LocationParser.h" 

@implementation LocationParser 

-(LocationParser *)initXMLParser 
{ 
self=[super init]; 
if (self) 
{ 
    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate]; 
    self.parsingArray = [NSMutableArray arrayWithArray:appDelegate.presenceArray]; 
    //parser = [[NSXMLParser alloc]init]; // this was the wrong place to declare. 
    [self parseArrayofPresence]; 
} 
    return self; 
} 
-(void)parseArrayofPresence 
{ 
for (NSData *data in _parsingArray) 
{  NSLog(@"presence data for parsing is :- %@",data);//this shows the data in NSData form. 
     parser = [[NSXMLParser alloc]initWithData:data]; // this solves the problem 
} 
    [parser setDelegate:self]; 
    [parser parse]; // this gets highlighted showing EXC_BAD_ACCESS. 

} 

이것은 AppDelegate 클래스에서 데이터를 가져옵니다. 왜 루프 것을에서하고있는 그런데 .. for 루프에서 당신의
[parser setDelegate:self]; [parser parse];XML 구문 분석 중 EXC_BAD_ACCESS (코드 = 2)

- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence 
    { 
     if ([presence status]!= nil) { 
     _presenceData = [[presence status] dataUsingEncoding:NSUTF8StringEncoding];//convert presence to NSData 
     [_presenceArray addObject:_presenceData]; // add NSData to a mutable array 
    locationParser = [[LocationParser alloc]initXMLParser]; //initialising location parser class 
    } 
+0

.h 클래스에서 대리자 NSXMLDelegate를 사용 해본 적이 있습니까? – Dinesh

+0

네 .. 그랬어요. – icodes

+0

for 루프 내에서 구문 분석하는 이유는 무엇입니까? – manujmv

답변

0

시도를 이동?

+0

done ...하지만 같은 오류를 보여줍니다 – icodes

+0

XML 파서 클래스에 데이터를 추가하지 않으셨습니까? 어쨌든 어떤 데이터가 파싱됩니까? '[[NSXMLparser alloc] initwithData : data]' – Dinesh

+0

어떻게 NSData 배열 – icodes