我从.net网络服务器以xml字符串的形式获取信息(ID,名称,地址)。
我正在使用NSXMlparsing在iphone os 4.0中解析这个xml字符串。
现在我需要在iphone os 2.0中执行相同的应用程序。
我发现Nsxmlparsing委托应该适用于4.0及更高版本。
任何人都可以建议哪种方法适合解析xml字符串和示例教程。
提前感谢你。
答案 0 :(得分:2)
在iOS 4.0中添加了NSXMLParserDelegate。
您可以使用#define指令声明该协议,以便在4.0之前的iOS版本中包含协议声明,以便能够编译您的代码,但您不必在此协议定义中包含所有方法。
你可以这样做:
#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_4_0
@protocol NSXMLParserDelegate <NSObject>
@end
#endif
答案 1 :(得分:1)
NSXMLParser
已经可用。委托协议也一直可用,但在iOS 4.0之前NSXMLParserDelegate
是所谓的非正式协议,例如没有明确定义。
从iOS 4.0开始,许多以前非正式的协议已被提升为实际格式协议,NSXMLParserDelegate
就是其中之一。
关于不符合协议的警告是针对SDK 4.0及更高版本构建的,或者如果可以通过有条件地遵循协议来修复早期SDK的构建,则会丢失协议:
@interface MyClass : NSObject
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
<NSXMLParserDelegate>
#endif
{
// Your ivars here
}
// And methods here as usual
@end
或者,当您将代理设置为id
时,可以使编译器关闭,如下所示:
[myXMLParser setDelegate:(id)self]; // Assuming self is the delegate
答案 2 :(得分:0)
编辑:来自doc的NSXMLParser 可用性适用于iOS 2.0及更高版本。
答案 3 :(得分:0)
根据the NSXMLParser documentation,您可以将其与iOS 2.0一起使用。代表文档提到了iOS4。其中一个是错误的,我没有iOS 2.0设备来测试它,但你有没有尝试过当前形式的应用程序?我在这里的假设是委托文档是错误的,它实际上支持2.0。