该协议是iOS4之前的非正式协议,基本上意味着所有方法都是@optional
采用的协议的声明只是让编译器高兴,所以在这种情况下不要这样做。
@interface MyClass: NSObject
而不是试图在编译时将类设置为符合协议,而是在运行时进行。
-(BOOL)conformsToProtocol:(Protocol *)aProtocol
{
NSString *protocolName = NSStringFromProtocol(aProtocol);
if ([protocolName isEqualToString:@"NSXMLParserDelegate"]) {
return YES;
}
return [super conformsToProtocol:aProtocol];
}
-(void)setupParser
{
myParser = [[NSXMLParser alloc] initWithContentsOfURL:whatever];
//cast as id to shut the compiler warning up
myParser.delegate = (id)self;
}
-(BOOL)conformsToProtocol:(Protocol *)aProtocol
可能不需要覆盖,但它可能不会受到伤害。