我是ios开发的初学者,我需要在tableview上从服务器加载动态数据,如果有人知道代码请分享。
提前致谢, 安倍。
答案 0 :(得分:5)
使用核心数据和NSFetchedResultsController,通过tableview控制器的委托方法从NSFetchedResultsController实例填充tableview。它反映了对数据库的自动删除,添加和任何类型的更新到tableview。
答案 1 :(得分:3)
根据模型的复杂程度以及所需的缓存策略类型,可以使用不同的方法将表视图连接到远程数据源。这里有很多东西可以说,但如果你是初学者,最好的方法是看看互联网上的一些例子。
有少数"用于网络通信的开源项目,提供良好的方法和良好的示例(包括源代码)来处理服务器驱动的应用程序。我引用了我更喜欢的两个:
但请注意,您无论如何都需要了解UITableView及相关协议的基础知识:UITableViewDelegate和UITableViewDataSource。文档还可以,但您甚至可以查看有关表格视图的WWDC 2011 podcast。
此外,如果你还需要数据持久性,你应该开始研究Core Data和NSFetchedResultControllers,就像illis和Bogdan所说的那样,但事情会变得有点棘手。
答案 2 :(得分:2)
实际上NSFetchedResultsController有点难以理解。
您应该尝试自己处理UITableView数据。看看UITableViewDelegate protocol
以下是您可以遵循的一些步骤:
1)创建一个将继承UITableViewDelegate和UITableViewDataSource的类
@interface YourTableViewController: UITableViewController<UITableViewDelegate,UITableViewDataSource>
2)创建一个用于保存数据的数组
@property (nonatomic,retain) NSMutableArray *data;
3)实施这些方法:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DataObject *d=[data objectAtIndex:indexPath.row]; // selected data, now you can handle it
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return data.count;
}
- (UITableViewCell *)tableView:(UITableView *)mtableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *ident=@"CatalogCell";
UITableViewCell *cell=(UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:ident];
if (cell==nil) {
cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ident] autorelease];
}
DataObject *d=[data objectAtIndex:indexPath.row];
[cell.textLabel setText:d.someField];
}
4)选择一些方法(NSURLConnection,ASIHTTPRequest(对不起,只允许2个超链接)或其他方法)从服务器获取数据
-(void) parseData:(NSString *) d {
NSArray * parsedData=[self someMethodToParseData:d];
[data setArray:parsedData];
[tableView reloadData];
}
答案 3 :(得分:0)
您可以使用ASIHTTPRequest库从服务器获取数据。您可以在http://allseeing-i.com/ASIHTTPRequest/
上找到有关它的一些信息您可以使用http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-use-tableview-in-iphone/此链接获取有关tableview的更多信息。
在link的教程中,您必须在viewDidload方法中请求您的数据。
- (void)viewDidLoad {
// Request your data on this line.
/*NSArray *array = [[NSArray alloc] initWithObjects:@"Sleepy",@"Sneezy",@"Bashful",@"Happy",@"Doc",
@"Grmpy",@"Dopey",@"Thorin",@"Dorin",@"Nori",
@"Ori",@"Balin",@"Dwalin",@"Fili",@"Kili",@"Oin",
@"Gloin",@"Bifur",@"Bofur",@"Bombur",nil ];*/
self.listData = array;
[array release];
[super viewDidLoad];
}
所有这些都只是用法。您必须体验更多示例才能使用更复杂的情况。我将为教程添加更多代码以从服务器获取数据并在tableview上显示。