【发布时间】:2014-10-07 23:40:42
【问题描述】:
我正在尝试将数据库中的行和列显示到 tableview 中。我的方法是:首先从数据库中获取数据,然后将 SQL 语句分配给如下变量:
- (NSMutableDictionary *)arrayOfInquiries
{
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &database) == SQLITE_OK)
{
NSString *querySQL = @"select * from inquiry_tb";
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(database,
query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
Inquiry *voucher = [[Inquiry alloc]init];
NSNumber *id = [[NSNumber alloc] initWithInt:sqlite3_column_int(statement, 1)];
NSString *name = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 2)];
NSString *date = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 3)];
NSString *branch = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 4)];
NSMutableDictionary *inquiries = [NSMutableDictionary dictionaryWithObjectAndKeys:id,@"id",name,@"name",date,@"date",branch,@"branch",nil];
sqlite3_reset(statement);
return inquiries;
}
}
}
return nil;
}
我打算返回主视图控制器。
我的问题是:如何将它返回到主视图控制器。这样我就可以将它用于 tableViewCell 中的标签。
我的方法对吗?还是有更好的方法?
【问题讨论】:
-
我不确定 SQLite 数据库方法是否正确。你可以实现一个委托,你的 MainViewController 也可以实现它。通过此 API,您可以将查询返回给 MainViewCONtrollerDelegate。但是使用这种方法,您的 MainViewController 应该已经在内存中以接收此委托方法。
-
还有一个建议。如果你使用CoreData,它有NSFetchedResultsViewController,它将以tableview的方式显示内容,并且数据库中的所有编辑操作都将与你的tableview同步。
标签: ios objective-c uitableview sqlite