【发布时间】:2012-03-11 10:17:32
【问题描述】:
我是 Objective-c 的新手,我正在尝试创建一个字典数组,以便在具有三列的 NSTableView 中查看它们。 sqlite DB 模式在名为“tbl1”的表中也有三列,“foo”、“bar”和“foobar”。我正在使用 FMDB 作为包装器,我可以成功编写和查询。
我可以用这个为整个数据库创建一个数组:
FMResultSet *rs = [db executeQuery:@"select * from tbl1"];
我可以用这个创建一个字典:
dict = [[NSMutableDictionary alloc] init];
[dict setObject: @"baz"
forKey: @"foo"];
读取数据库中的每个项目:
while ([rs next]) {
NSLog(@"%@, %@, %@",
[rs stringForColumn:@"foo"],
[rs stringForColumn:@"bar"],
[rs stringForColumn:@"foobar"]);
}
但是,我似乎无法创建单个 NSMutableDictionaries 数组,因此我可以将它们读入基于单元格的表格视图中。我能够用“foo”的值填充标识符“foo”的单个列,但是,这只是通过从 SQL 查询中创建一个“foo”项数组:
FMResultSet *rs = [db executeQuery:@"select * from tbl1"];
while([foo next]) {
NSString *thisFoo = [foos stringForColumn:@"foo"];
[_foos addObject:[NSString stringWithFormat:@"%@", thisFoo]];
}
NSLog(@"Foos: %@", _foos);
作为旁注,如果我想稍后更新数据库,我应该使用可变数组和可变字典吗?还是没关系,因为无论如何我都必须查询整个数据库才能刷新表视图? 任何关于如何使用三列 sqlite DB 填充三列 tableview 的建议都值得赞赏 - 以及对我对 FMDB 或 tableviews 理解的更正。
【问题讨论】:
标签: objective-c cocoa sqlite fmdb