Ios 执行多个查询

Ios 执行多个查询,ios,Ios,我在学习一个教程。 它工作得很好 我的缺点是,执行他们在这个方法中执行的单个查询 "+ (void) getInitialDataToDisplay:(NSString *)dbPath {" 作为 “从咖啡中选择咖啡ID、咖啡名称” 这很好。但是对于我的下一个视图,如果我想执行一个新的查询,比如“select*from coffee where abc=123” 我应该在哪里写这个查询?我必须创建一个新的方法,并且必须调用这个新的方法或者什么? 如果要使用sqlite,我如何执行另一个查

我在学习一个教程。 它工作得很好

我的缺点是,执行他们在这个方法中执行的单个查询

"+ (void) getInitialDataToDisplay:(NSString *)dbPath {"  
作为
“从咖啡中选择咖啡ID、咖啡名称”

这很好。但是对于我的下一个视图,如果我想执行一个新的查询,比如“select*from coffee where abc=123”

我应该在哪里写这个查询?我必须创建一个新的方法,并且必须调用这个新的方法或者什么? 如果要使用sqlite,我如何执行另一个查询?

1)。我建议您学习如何将核心数据添加到应用程序中

2) 回答您的问题。您可以向coffee类添加一个方法来检索所需的数据。它可以是一个类方法,实现方式如下:

 + (void) getData:(NSString *)dbPath {
    SQLAppDelegate *appDelegate = (SQLAppDelegate *)[[UIApplication sharedApplication] delegate];

    if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {

        // <---Modify the sqlite statement below
        const char *sql = "select coffeeID, coffeeName from coffee"; 
        sqlite3_stmt *selectstmt;
        if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) {

            while(sqlite3_step(selectstmt) == SQLITE_ROW) {

                NSInteger primaryKey = sqlite3_column_int(selectstmt, 0);
                Coffee *coffeeObj = [[Coffee alloc] initWithPrimaryKey:primaryKey];
                coffeeObj.coffeeName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]; // <-- create objects in coffeeObj that you want to do something with.

                coffeeObj.isDirty = NO;

                [appDelegate.coffeeArray addObject:coffeeObj];
                [coffeeObj release];
            }
        }
    }
    else
        sqlite3_close(database); //Even though the open call failed, close the database connection to release all the memory.
}
+(void)getData:(NSString*)dbPath{
SQLAppDelegate*appDelegate=(SQLAppDelegate*)[[UIApplication sharedApplication]委托];
if(sqlite3_打开([dbPath UTF8String],&database)==SQLITE_确定){

//谢谢Jordan,我只需要问一件事..我在其中传递了查询,但是我应该如何以及何时调用这个“+(void)getData:(NSString*)dbPath”方法???ohk让它运行了,我在ApplicationIDFinish启动中调用了这个方法。但有一件事,我得到的返回数据是“"以这种格式。当我关闭应用程序并再次运行它时,它会显示真实的数据,你知道为什么会发生这种情况吗?谢谢。咖啡是一个类。更准确地说,它是一个数据模型对象。它是一个保存数据的结构。你使用点符号引用NSStrings等。例如,在上面的代码中,咖啡的名称存储在cof中那么,我得到的返回值是“”,有没有办法得到实际值?再次感谢sircafee*coffeeObj=[coffeeArray objectAtIndex:0];NSlog(@“%@”,coffeeObj.coffeeName);将检索coffeeArray中的第一个对象并将其输出到控制台。