2013-11-27 36 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類。在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 
    } 
+0

你是否在你的.h類中使用了委託NSXMLDelegate? – Dinesh

+0

是的..我已經做到了。 – icodes

+0

爲什麼你要在for循環中解析它? – manujmv

回答

0

嘗試移動你的
[parser setDelegate:self]; [parser parse];

出來的for循環..順便說你爲什麼這樣做,在for循環?

+0

完成...但顯示相同的錯誤 – icodes

+0

你還沒有添加任何數據到XML解析器類?它究竟會解析哪些數據?使用'[[NSXMLparser alloc] initwithData:data]' – Dinesh

+0

我怎麼能做到這一點NSData數組 – icodes