4

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

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

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

我使用的是 Xcode v4.3.2,我不使用 Storyboard 或 ARC。我试图尽可能详细,但你可以,我的目标真的很简单。

我已经被淘汰了,我很感激我能得到的所有帮助。

谢谢!-马特

4

2 回答 2

8
  • 创建数据库文件:只需将 data.sqlite 文件拖放到 xcode 项目中,就像删除任何其他类或图像资源一样。请注意,您必须在应用安装后将文件复制到可写目录。看看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
于 2012-05-03T19:55:56.563 回答
0

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

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

于 2013-07-11T14:55:57.177 回答