#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類。在XML解析期間EXC_BAD_ACCESS(code = 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