#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
}
.h 클래스에서 대리자 NSXMLDelegate를 사용 해본 적이 있습니까? – Dinesh
네 .. 그랬어요. – icodes
for 루프 내에서 구문 분석하는 이유는 무엇입니까? – manujmv