Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSXMLParserDelegate编译问题-iPhone SDK 30。vs 4.0_Iphone - Fatal编程技术网

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>