#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, где я получаю данные.EXC_BAD_ACCESS (код = 2) во время разбора XML
- (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
}
Вы использовали делегат NSXMLDelegate в своем классе .h? – Dinesh
есть .. я сделал это. – icodes
почему вы разбираете его внутри цикла for? – manujmv