2012-02-21 16 views
1

私はobjective-cに新しく、3列のNSTableViewでそれらを表示するために辞書の配列を作成しようとしています。 sqlite DBスキーマには、 "tbl1"というテーブルに "foo"、 "bar"、 "foobar"という3つのカラムがあります。私はラッパーとしてFMDBを使用している、私は書き込みとクエリを正常に行うことができます。FMDBを使用してsqlite DBから辞書の配列を作成

私はこれを全体DBの配列を作成することができます。

FMResultSet *rs = [db executeQuery:@"select * from tbl1"]; 

と私はこれを辞書を作成することができる:DB内の各アイテムを読み取る

dict = [[NSMutableDictionary alloc] init]; 
[dict setObject: @"baz"   
     forKey: @"foo"]; 

作品:

while ([rs next]) { 
    NSLog(@"%@, %@, %@", 
      [rs stringForColumn:@"foo"], 
      [rs stringForColumn:@"bar"], 
      [rs stringForColumn:@"foobar"]); 
    } 

しかし、私はNSMutableDictionariesの単一の配列を作成することができないので、それらをセルbに読み込むことができますasedテーブルビュー。私は、しかし、「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); 

私は後でDBを更新したい場合は、私は可変配列と可変ディクショナリを使用する必要がありますか?とにかくテーブルビューをリフレッシュするためにDB全体をクエリする必要があるので、それは重要ではありませんか? 3列のテーブルビューに3列のsqlite DBを挿入する方法についての提案は、私の理解のFMDBまたはテーブルビューの修正に加えて、高く評価されています。

答えて

1
FMResultSet *rs = (FMResultSet*)[db executeQuery:@"select * from tbl1"]; 
NSMutableArray *totalArray = [[[NSMutableArray alloc]init]autorelease]; 
while ([rs next]) { 
dict = [[NSMutableDictionary alloc] init]; 
[dict setObject:[rs stringForColumn:@"foo"] forKey:@"COL1"]; 
[dict setObject:[rs stringForColumn:@"bar"] forKey:@"COL2"]; 
[dict setObject:[rs stringForColumn:@"foobar"] forKey:@"COL3"]; 
[totalArray addObject:dict]; 
[dict release]; 
} 
return totalArray; 

はあなたの辞書

0

リックの配列を与える必要があり、あなたの質問は、私にはあまり意味を作っていません。あなたの正確な問題点を明確に示すように編集してください。このサンプルコードhttps://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/Reference/Reference.html

:ここNSTableViewDelegate議定書のAppleのドキュメントを読みhttps://github.com/ccgus/fmdb/zipball/master

:FMDBは、ここで指定したサンプルコードを通過するため

https://developer.apple.com/library/mac/#samplecode/CocoaTipsAndTricks/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010039も役立つはずです。

関連する問題