如何使用来自给定url的TBXML方法加载XML文档?
问题描述:
我试图用TBXML的方法:如何使用来自给定url的TBXML方法加载XML文档?
+ (id)tbxmlWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock;
从TBXML + HTML.h 但我无法找到任何有关TBXMLSuccessBlock
和TBXMLFailureBlock
。即使在官方教程中,您只能看到:但是,当我试用它时,Xcode告诉我没有这样的类方法。 顺便说一句,我使用ARC(所以我不写retain
)。
所以问题是:我如何使用TBXML的方法从给定的url加载XML文档?
答
TBXMLSuccessBlock
和TBXMLFailureBlock
被用作实现从给定的URL成功和不成功地检索XML数据的条件的有效方式。查看Apple的Blocks programming guide以获取有关Objective-C块的更多深入信息。
如果你只是想如何使用它的一些示例代码,这(使用最新版本TBXML的):
TBXMLSuccessBlock s = ^(TBXML *tbxml) {
NSLog(@"yay");
// Do something with TBXML object "tbxml
// ...
// An example - print the name of an element
TBXMLElement *e = [TBXML childElementNamed:@"head" parentElement:tbxml.rootXMLElement];
NSString *a = [TBXML elementName:e];
NSLog(@"%@",a);
};
TBXMLFailureBlock f = ^(TBXML *tbxml, NSError *error) {
// Do something to recover from the failure here
// ....
NSLog(@"nay");
};
[TBXML newTBXMLWithURL:[NSURL URLWithString:@"http://www.google.co.nz"]
success: s
failure: f];
当你执行这个代码,TBXMLSuccessBlock应该如果你有机会执行以下URL。如果您无法访问该网站,则会执行TBXMLFailureBlock。请注意,如果您正在使用的库是非ARC(假设库是源代码而不是静态或动态库),并且您试图将它集成到ARC-ified源中,则可以执行以下操作:这在Xcode下进入你的xcodeproj文件 - > Build Phases - >编译源文件,并且对于不使用ARC的每个.m文件,输入编译器标志-fno-objc-arc
,这将告诉编译器不要使用ARC进行编译。
谢谢:)它帮助了我。 – 2012-06-26 13:30:24
由于某些原因在SDK 5下使用ARC,initwithurl记录到处都不适合我。抛出方法未知或不执行块。你的代码使它对我有用。 – Yahel 2012-07-25 08:10:10