使用SQLite与iOS ...非常初学者的程序

时间:2012-05-03 19:29:25

标签: ios sqlite

我正在尝试编写一个应用程序,其中我将使用两个文本字段进行输入。从文本字段获取的输入正在初始化为字符串。所以我想要完成的是:

  • 创建一个将保存在Xcode项目中的SQLite数据库(文件)(我不知道它可以保存到哪里,但我需要能够读取并写入它)。
  • 然后我想将字符串(从文本字段输入)放入SQLite表中,该表只有两个字段(为简单起见)。我正在使用一个按钮来接受来自文本字段的输入,将输入放入字符串,然后将字符串的值放入标签中。
  • 我最终希望将文本字段中的字符串放入表中,然后读取表格以“抓取”字符串并将其显示在标签中。所有这些都可以通过点击按钮来完成。

我意识到这是非常具体的,但我一直很难找到任何简单的方法来实现这一目标。我对iOS开发非常陌生,如果有人能够尽可能具体和详细,我会感激,或者至少指出一些可以教会我如何实现这一目标的资源。

我正在使用Xcode v4.3.2而我不使用Storyboard或ARC。我试图尽可能详细,但尽可能地,我的目标非常简单。

我被挖掘出来,我很感激能得到的所有帮助。

谢谢! -Matt

2 个答案:

答案 0 :(得分:8)

  • 创建数据库文件:只需删除xcode项目中的data.sqlite文件,就像删除任何其他类或图像资源一样。请注意,在安装应用程序后,您必须将文件复制到可写目录。看看createeditablecopyofdatabaseifneeded
  • 使用sqlite3_open打开与新数据库位置相关的数据库。
  • 使用sqlite3_prepare_v2
  • 查询数据库

一个简单的查询代码段如下:

NSString *querystring;

// create your statement
querystring= [NSString stringWithFormat:@"SELECT text1, text2 FROM datatable;"];  

const char *sql = [querystring UTF8String];

NSString *text1 = nil;
NSString *text2 = nil;

if (sqlite3_prepare_v2(db, sql, -1, &statement, NULL)!=SQLITE_OK){

    NSLog(@"sql problem occured with: %s", sql);
    NSLog(@"%s", sqlite3_errmsg(db));

}
else
{
    // you could handle multiple rows here
    while (sqlite3_step(statement) == SQLITE_ROW) {            

       text1 = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 0)];
       text2 = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)];

    } // while        

}
sqlite3_finalize(statement);

// go on with putting data where you want

答案 1 :(得分:0)

这里有一个使用SQLite的示例项目,您可以参考:https://github.com/AaronBratcher/ABSQLite

它具有以更传统的数据库方式访问SQLite的类。示例项目使用SQL创建表,并显示如何在应用程序的不同版本上更改架构。