2010-06-30 70 views
1

我无法让我的UITableViewController重新加载/刷新数据。UITableViewController无法重新加载数据 - ASIHTTPRequest

我有一个方法,它使用ASIHTTPRequest来调用一个URL并带回一些字符串数据。我试图把这些数据放到表格的单元格中,但[self.tableview reloadData]不起作用。

我在想,在ASIHTTPRequest完成上一个单独的线程执行任务,所以我尝试:

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; 

也什么也没做。

如何重新加载数据?我一直坚持这一段时间。

代码: MainViewController.h

#import <UIKit/UIKit.h> 
@class ProductClass; 
@interface MainViewController : UITableViewController { 
ProductClass *item; 
} 
@property (nonatomic, retain) ProductClass *item; 
@end 

MainViewController.m

#import "MainViewController.h" 
#import "ASIHTTPRequest.h" 
#import "ProductClass.h" 

@implementation MainViewController 
@synthesize item; 

- (void) viewDidLoad { 
self.title = @"TableView Test"; 
self.tableView.allowsSelection = NO; 
self.item = [[ProductClass alloc] init]; 
    [self callURL]; 
} 

-(void)callURL { 
    NSURL *url = [NSURL URLWithString:@"http://urlgoeshere.com"]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request setDelegate:self]; 
[request startAsynchronous]; 
} 


- (void)requestFinished:(ASIHTTPRequest *)request { 
//Grab the response 
NSString *responseString = [request responseString]; 
     //Put the result into the ProductClass item 
item.titleOfProduct = responseString; 

    //This line shows that self.tableview does NOT have an address of 0x0 
NSLog(@"%@\n", self.tableView); 

    //Problem line!!!!!! 
    [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; 
    //The below lines also do nothing!!!! 
//[self.tableView reloadData]; 
//[[self tableView] reloadData]; 
} 

任何人有什么想法?我处于全面亏损状态。

干杯, 布雷特

回答

0

你不需要performSelectorOnMainThread - asihttprequest总是调用主线程的选择。

你为表设置了一个数据源吗?你需要设置至少一些字段的数据源,请参阅:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableViewDatasource_Protocol/Reference/Reference.html

至少的cellForRowAtIndexPath和numberOfRowsInSection。这里有一个教程,可以帮助:

http://icodeblog.com/2008/08/08/iphone-programming-tutorial-populating-uitableview-with-an-nsarray/