NSXMLParserDelegate编译问题-iPhone SDK 30。vs 4.0
我的头文件定义如下:NSXMLParserDelegate编译问题-iPhone SDK 30。vs 4.0,iphone,Iphone,我的头文件定义如下: #import <Foundation/Foundation.h> @interface Warning: NSObject { 这在3.0下编译并运行良好 如果我尝试使用4.0进行编译,则会出现以下错误: 不执行 “NSXMLParserDelegate”协议 如果我加上: @interface Warning: NSObject <NSXMLParserDelegate> { @接口警告:NSObject{ 使用4.0可以很好地编
#import <Foundation/Foundation.h>
@interface Warning: NSObject {
这在3.0下编译并运行良好
如果我尝试使用4.0进行编译,则会出现以下错误:
不执行
“NSXMLParserDelegate”协议
如果我加上:
@interface Warning: NSObject <NSXMLParserDelegate> {
@接口警告:NSObject{
使用4.0可以很好地编译,但是当我尝试使用3.0编译时,我得到:
错误:找不到协议
“NSXMLParserDelegate”的声明
基础框架被正确找到。添加NXXMLPARSER。H没有帮助。
任何帮助都将不胜感激谢谢根据库参考文档,NSXMLParser不需要严格的NSXMLParserDelegate实现:
- (void)setDelegate:(id)delegate
- (id)delegate
NSXMLParser动态检查所需的委托方法的可用性
如果NSXMLParser需要NSXMLParserDelegate完整实现,则访问器将是:
- (void)setDelegate:(id<NSXMLParserDelegate>)delegate
- (id<NSXMLParserDelegate>)delegate
-(void)setDelegate:(id)delegate
-(id)代表
我想这就是框架中没有实际定义NSXMLParserDelegate协议的原因
因此,该界面在我看来是正确的:
#import <Foundation/Foundation.h>
@interface Warning: NSObject {
#导入
@接口警告:NSObject{
你所要做的就是实现你所需要的
编辑:
您可以尝试使用预处理器宏来激活或停用协议使用声明:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
@interface Warning: NSObject <NSXMLParserDelegate>
#else
@interface Warning: NSObject
#endif
{
// interface definition ...
#如果需要IPHONE操作系统版本(MIN)>=(IPHONE 4)
@接口警告:NSObject
#否则
@接口警告:NSObject
#恩迪夫
{
//接口定义。。。
我没有在4.0中尝试这一点,但它在3.1和3.2之间的另一个示例中起作用,我能够用以下方法解决这一问题:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
@protocol NSXMLParserDelegate
@end
#endif
@interface Warning: NSObject <NSXMLParserDelegate>
#如果需要IPHONE操作系统版本(MIN)>=(IPHONE 4)
@协议NSXMLParserDelegate
@结束
#恩迪夫
@接口警告:NSObject
请确保在实现中实现适当的方法。谢谢,我已经实现了我需要的委托方法:-(void)parser:(NSXMLParser*)parser foundCharacters:-(void)parser:(NSXMLParser*)parser didStartElement:-(void)parser:(NSXMLParser*))parser didEndElement:但是编译器仍然在4.0ah下抱怨,明白了。谢谢。但是仍然有问题。我的最小版本是零:最小版本:0.000000。我需要找到它的设置位置。非常感谢。如果你不知道问题的具体原因,请不要回复。仅在编译时定义工作。作者需要区分这一点在运行时,让编译器也高兴。@stoutyhk。
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
@protocol NSXMLParserDelegate
@end
#endif
@interface Warning: NSObject <NSXMLParserDelegate>