0
//===================================================================================
- (NSMutableDictionary *) getDataToDisplayTierTwo:(NSString*)dbPath:(NSString*)iD{
//===================================================================================
NSMutableDictionary *aTierTwoTemplateData = [[NSMutableDictionary alloc]init];
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
{
NSString *selectSQL = [NSString stringWithFormat: @"select * from sub_categories_reference scr inner join storyboard_sub_categories ssc on ssc.id = scr.sub_category_id inner join subcategory_order as sco on sco.sub_category_id = scr.sub_category_id where scr.main_category_id = %@ and sco.main_category_id = %@ order by sco.position asc",iD,iD];
NSLog(@"%@", selectSQL);
const char *sql_query_stmt = [selectSQL UTF8String];
sqlite3_stmt *selectstmt;
if(sqlite3_prepare_v2(database, sql_query_stmt, -1, &selectstmt, NULL) == SQLITE_OK)
{
while(sqlite3_step(selectstmt) == SQLITE_ROW)
{
NSString *aValue = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(selectstmt, 6)];
NSString *aId = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(selectstmt, 5)];
[aTierTwoTemplateData setObject:aId forKey:aValue];
[aValue release];
[aId release];
NSLog(@"%@ %@ ^^^^^^^^^^^^^^^^^^^^picker value id ", aValue, aId);
}
}
}
sqlite3_close(database);
return aTierTwoTemplateData;
}
これを配列に割り当てると結果セットを得ることができますが、これは辞書に格納されている順序が失われます。クエリを使用して注文に基づいて結果セットを一覧表示する方法
実際には、位置フィールドに基づいて結果セットを保存しました。
結果セットを配列に割り当てると、順序が変更されます。
どうすればこのような状況に対処できますか教えてください。
これは私が「位置」としてデシベルでcoulmnを持っているとして、あなたはキーと値のペアとしてデータを保存し、秩序を維持したい場合は、あなたがNSArray
の組み合わせを使用することができ、
NSDictionaryはキーをソートするため、データを正確な順序にする場合は、NSArray/NSMutableArrayを使用してデータを格納し、順序を維持してください。 –