2012-04-20 35 views
0

我試圖用TBXML的方法:如何使用來自給定url的TBXML方法加載XML文檔?

+ (id)tbxmlWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock; 

從TBXML + HTML.h 但我無法找到任何有關TBXMLSuccessBlockTBXMLFailureBlock。即使在官方教程中,您只能看到:但是,當我試用它時,Xcode告訴我沒有這樣的類方法。 順便說一句,我使用ARC(所以我不寫retain)。

所以問題是:我如何使用TBXML的方法從給定的url加載XML文檔?

回答

1

TBXMLSuccessBlockTBXMLFailureBlock被用作實現從給定的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進行編譯。

+0

謝謝:)它幫助了我。 – 2012-06-26 13:30:24

+0

由於某些原因在SDK 5下使用ARC,initwithurl記錄到處都不適合我。拋出方法未知或不執行塊。你的代碼使它對我有用。 – Yahel 2012-07-25 08:10:10

相關問題