0

私はsqlitedbを持っており、そこにはID(整数)とSymptomName(文字列)を列として含むsympacttableというテーブルがあります。私はsympostenNameの最初の文字に基づいてSymptomNameをフェッチしているsqliteクエリを作成しました

例:-..最初の文字に文字「A」が含まれている場合、それらの単語をフェッチし、「B」はそれらの単語をフェッチします。

ここで、IDからプロセスを逆にします。最初の文字に基づいてsymptonNameをフェッチします...symptomaNameが文字「D」で始まる場合は、文字「D」で始まるアイテムのリストを取得します。言い換えると、 IDからの最初の文字で構成されるSymptomNameのリストをフェッチし、Indexpathを返します。

クエリNSString*alphabetString = [NSString stringWithFormat:@ "%c"、i]; このコードから私は文字を取得しています。

-(NSMutableDictionary *)indexReadData
{
    NSMutableDictionary *indexDict=[[NSMutableDictionary alloc]init];
    int i;  
    NSString *dbPath=[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"QuickCureNew1.sqlite"];
    if (sqlite3_open([dbPath UTF8String], &quickAppNew)==SQLITE_OK) 
    {
        for (i=65; i<=90; i++) 
        {
            NSString *alphabetString=[NSString stringWithFormat:@"%c",i];
            NSString *sqlStmtReadIndexSymptom=[NSString stringWithFormat:@"select * from Symptom where Symptom like '%@%%'",alphabetString];
            const char *sqlCharReadIndexSymptom=[sqlStmtReadIndexSymptom UTF8String];
            sqlite3_stmt *selectStmtReadIndexSymptom;
            if (sqlite3_prepare_v2(quickAppNew, sqlCharReadIndexSymptom, -1, &selectStmtReadIndexSymptom, NULL)==SQLITE_OK)
            {
                NSMutableArray *indexArray=[[NSMutableArray alloc] init];
                while (sqlite3_step(selectStmtReadIndexSymptom)==SQLITE_ROW) 
                {
                    indexIdNo=[[NSNumber alloc]initWithInt:(int)sqlite3_column_int(selectStmtReadIndexSymptom,0)];
                    symptomIndexTxt=[[NSString alloc] initWithUTF8String:(char*) sqlite3_column_text(selectStmtReadIndexSymptom, 1)];
                    symptomsIndexDict=[[NSMutableDictionary alloc] initWithObjectsAndKeys: 
                                       symptomIndexTxt,@"SymptIndexName",
                                       indexIdNo,@"SymptIndexID",nil];
                    [indexArray addObject:symptomsIndexDict];
                }
                if (indexArray.count>0) 
                {
                    [indexDict setObject:indexArray forKey:alphabetString];
                }
            }
        }
        sqlite3_close(quickAppNew);
    }
    return indexDict;    
}
4

1 に答える 1

0

それCoreDataNSPredicate

NSPredicate *bPredicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] 'a'"];

それはすべて Apple Developer リファレンスにあります: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html

おそらく、これはあなたを正しい方向に向けています。

于 2013-02-26T17:58:17.133 に答える