这是我在appdelegate.m中的代码

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;
}

警告是“正在将xmlparser*”发送到不兼容类型“id”的参数
我应该改变什么来解决这个警告?
谢谢您

最佳答案

用这个代替你的方法。

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

更新
像这样实现nsxmlparserdelegate
在你的.h文件中用@interface XMLParser : NSObject替换@interface XMLParser : NSObject <NSXMLParserDelegate>明白吗?

07-28 06:01