2012-07-14 24 views
0

我發展我的第一個應用程序,這需要從網站的XML飼料的應用程序。使用的NSXMLParser和UITableView的重裝內容將暫停秒

第一次將XML加載到TableView中時,一切都正常,但是當我想通過點擊按鈕重新加載數據時,它會在重新加載XML和表視圖之前暫停幾秒鐘。我怎樣才能避免這個暫停時間?

當我點擊表格單元格去下一個TableViewController,它也停止幾秒鐘,在加載XML飼料爲節目列表。

我的應用程序就像是一個天然的博客的iPhone應用程序,並具有類別和子類別。

+0

貴表視圖包含圖像? – rakeshNS 2012-07-14 05:13:52

+0

是的,我也加載圖像也表視圖 – umefarooq 2012-07-14 06:47:02

回答

0

指一個下面的處理。


@interface YourViewController : UITableViewController<NSURLConnectionDelegate,NSXMLParserDelegate> 
//some declartion property... 
@end 

@implementation YourViewController 

- (void)viewDidLoad 
    { 
    [super viewDidLoad]; 

    isParsingStart = NO; 
    webData = [[NSMutableData alloc] init]; 
    connection = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:YOUR_XML_URL] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:20] delegate:self]; 
    } 

- (void)tappingButton:(UIButton *)sender 
    { 
    if(isParsingStart) 
    { 
     //show a alert view... or other do stuff 
     return; 
    } 
    webData = [[NSMutableData alloc] init]; 
    connection = [[[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:YOUR_XML_URL] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:20] delegate:self] autorelease]; 
    } 

    - (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
    { 
    [webData appendData:data]; 
    } 

- (void) connectionDidFinishLoading:(NSURLConnection *)connection 
    { 

    parser = [[NSXMLParser alloc] initWithData:webData]; 
    parser.delegate = self; 
    if([parser parse]) 
    { 
     isParsingStart = NO; 
     NSLog(@"The XML is Parsed."); 
     [[self tableView] reloadData]; 
    } 
    else 
    { 
     isParsingStart = NO; 
     NSLog(@"Failed to parse the XML"); 
    } 

     [webData setData:nil]; 
    } 

- (void)parserDidStartDocument:(NSXMLParser *)parser 
    { 
     isParsingStart = YES; 
    } 

    - (void)parserDidEndDocument:(NSXMLParser *)parser 
    { 
     //do stuff 
    } 

    - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
    { 
    // do stuff 
    } 

    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
    { 
    // do stuff 
    } 

      . 
      . 
      . 
+0

感謝它真的幫助偉大的工作現在不得不做更多的微調。 – umefarooq 2012-07-14 06:45:17

+0

嗨位圖代碼工作真的很好,現在一個問題,如果我從管理中發佈一些事情,它不刷新刷新,對於新的更改,我不得不再次加載應用程序。 – umefarooq 2012-07-15 05:31:52

+0

令人驚歎的答案!不能相信它是多麼輝煌的解決方案:)非常感謝你! – 2014-10-12 20:16:05