【发布时间】:2011-04-06 12:13:12
【问题描述】:
我希望这不是太基本的问题,但我(再次)被卡住了。
我有一个数组(从 sqlite db 填充)并希望将这些数据插入 UITableView。
所以基本上我希望我的文本字段和按钮,当然还有我的 tableview 都驻留在同一个窗口中。 我发现的大多数示例都是关于对 tableview 进行硬编码并填充到 viewDidLoad 中,我不想这样做,因此不能使用这些示例(或者更确切地说,它们不起作用)
这是我得到的:
if (sqlite3_prepare_v2(dbHandle, query, -1, &statement, NULL) == SQLITE_OK ){
NSMutableArray *array = [[NSMutableArray alloc] init];
//step through the results
while (sqlite3_step(statement) == SQLITE_ROW) {
[array addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]];
//NSLog(@"Data: %@",[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]);
}
dataArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
[array release];
sqlite3_finalize(statement); //releases the resources associted with the statment
sqlite3_close(dbHandle); //close db
//***********here I want something like: "tableview.data = dataArray.data"*******
有人有什么例子可以指点或写在这里吗?
【问题讨论】:
-
您需要查看 UITableView 文档,尤其是数据源部分。您需要从 UITableView:NumberOfRowsForSection: 返回数组计数,并且您需要在 UITableView:CellForRowAtIndexPath: 中设置单元格一旦您连接了数据源方法,您可以调用 [self.tableView reloadData] 来更新视图(如果有)变化。
-
我已经尝试了一些使用这些方法的示例,但最终的 [self.tableView reloadData]... 没有做它应该做的事情。这就是为什么我相信我需要一些专家的帮助来理解我在哪里误解了整个事情......
-
您在核心数据上使用 sqllite 的任何原因?
-
不,不是。我不知道 coredata,我在 sqlite 中有我的数据。不知道哪个更好...
-
我建议在 iphone 上使用核心数据,除非有充分的理由不这样做,您可以使用 NSFetchedResultController 对象为您管理大部分 tableView 位,我认为它已经在苹果模板中iirc.
标签: iphone uitableview nsarray populate