这是我在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>
明白吗?