回答
使用核心数据和NSFetchedResultsController,通过tableview控制器的委托方法填充NSFetchedResultsController实例的tableview。它反映了从数据库上自动删除,添加和任何类型的更新到tableview。
您可以使用ASIHTTPRequest库从服务器获取数据。你可以找到关于它的一些信息http://allseeing-i.com/ASIHTTPRequest/
你可以使用http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-use-tableview-in-iphone/这个链接来获得更多关于tableview的信息。
在链接的教程中,您必须在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上显示。
实际上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 *[email protected]"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];
}
获取数据根据您的模型和复杂的层次您需要什么样的缓存策略,将表视图连接到远程数据源有不同的方法。这里会有很多事要说,但如果你是初学者,最适合你的就是看看互联网上的一些例子。
有一些“少数”的网络通信开源项目提供了很好的方法和很好的例子(包括源代码)来处理服务器驱动的应用程序。我举两个我喜欢:
- AFNetworking:有例如与此库和的UITableViewController可能适合您的需要
- RestKit来源:如果要映射,坚持服务器返回的数据,这将变成有用到本地模式。这可能需要更多的学习时间。
但是提醒你反正需要知道UITableView的基础知识和相关协议:UITableViewDelegate和UITableViewDataSource。文档是可以的,但你甚至可能想看一下关于表格视图的WWDC 2011 podcast。而且,如果你还需要数据持久性,你应该开始考虑Core Data和NSFetchedResultControllers,因为illis和Bogdan说,但事情会开始变得有点棘手。
- 1. 如何在网站上实时加载服务器数据?
- 2. 如何在正常启动前从服务器加载数据
- 3. 如何加载服务器上
- 4. 从iOS上的服务器缓存和加载数据
- 5. 如何上传和下载iphone服务器上的数据(ios)
- 6. 如何在服务器上动态上传图片?
- 7. 如何从动态服务器端URL加载Java小程序?
- 8. jQuery Datatables从服务器加载数据
- 9. 如何在服务器端从HTTPPOST请求中加载数据?
- 10. 从活动服务器上的文件将数据加载到mysql
- 11. UITableView的滚动冻结加载从服务器
- 12. 在PHP中的服务器上加载远程数据
- 13. 在.NET服务器上加载文件
- 14. 在jboss服务器上加载DLL
- 15. 如何在android上动态加载imagebuttons?
- 16. 如何在viewDidLoad上重新加载UITableView?
- 17. 如何在Hapi服务器上记录服务器负载
- 18. 从生产Django服务器自动加载上传的文件
- 19. iPhone:从MySQL数据库服务器上
- 20. 如何在iOS上将图像数据上传到服务器?
- 21. 如何加载数据,并且使用JSON从服务器侧
- 22. 如何暂停/恢复从WebDav服务器上传/下载/从WebDav服务器上下载?
- 23. 如何从iPhone上的UIImageView上的远程服务器加载图像?
- 24. 如何在Spigot服务器上启动外部Netty服务器
- 25. 服务器启动时从数据库加载值
- 26. 从服务器加载数据,同时滚动Div到底部
- 27. 如何在Tomcat服务器上保存并加载图像
- 28. 如何在iPhone上获取加载的服务器视频
- 29. 如何从服务器加载MainActivity.java?
- 30. 使用Cocoa Touch从服务器上传和下载数据?