【问题标题】:UITableViewController not reloading data - ASIHTTPRequestUITableViewController 不重新加载数据 - ASIHTTPRequest
【发布时间】:2010-06-30 15:38:17
【问题描述】:

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

我有一个使用 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];
}

有人有什么想法吗???我完全不知所措。

干杯, 布雷特

【问题讨论】:

    标签: iphone objective-c uitableview asihttprequest


    【解决方案1】:

    你不需要 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/

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多