2012-01-16 4 views
2

Вот мой код в appdelegate.mЯ разбора XML и предупреждения

NSURL *url = [[NSURL alloc] initWithString:kBioXML]; 
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 

XMLParser *parser = [[XMLParser alloc]initXMLParser]; 
[xmlParser setDelegate:parser];  < - warning 

XMLParser.h выглядит

@class AppDelegate, Bio; 

@interface XMLParser : NSObject { 
NSMutableString *currentElementValue; 

AppDelegate *appDelegate; 
Bio *aBio; 

NSString * bioText; 
} 
@property(nonatomic, retain) NSString *bioText; 
- (XMLParser *) initXMLParser; 
@end 

И XMLParser.m

@implementation XMLParser 

@synthesize bioText; 

- (XMLParser *) initXMLParser{ 
[super init]; 
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
bioText = @""; 
return self; 
} 

The предупреждение «Отправка XMLParser *» параметру несовместимого типа «id , что я должен изменить, чтобы решить это предупреждение?

спасибо

+0

См обновленный ответ –

ответ

2

Записать это вместо вашего метода ..

-(id) initXMLParser 
{ 
    self = [super init]; 
    if(self != nil) 
    { 
     appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
     bioText = @""; 
    } 
    return self; 
} 

Update

Реализовать NSXMLParserDelegate как этот

В вас .h файл заменить @interface XMLParser : NSObject с @interface XMLParser : NSObject <NSXMLParserDelegate> получил Это?

+0

то же самое предупреждение ... 'идентификатор ' –

+0

вы имеете в виду NSXMLParserDelegate * PAR = [NSXMLParserDelegate Alloc] инициализации ]; ? –

+0

YEAP !!! Большое спасибо!!! спасибо за помощь! –

2

Вы должны использовать объект NSXMLParserDelegate вместо парсера nsxml, а протокол NSXMLParserDelegate определяет необязательные методы, реализованные делегатами объектов NSXMLParser.

Надеюсь, это может вам помочь !!!

+0

Можете ли вы сказать, что я должен изменить в коде –

+0

Вы можете попробовать таким образом NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithContentsOfURL: url]; XMLParserdelegate * parserdeleagte = [[XMLParserdelegate alloc] init]; [xmlParser setDelegate: parserdelegate]; [xmlParser parse]; – Ballu

+0

он говорит НЕТ XMLParserdelegate –