ios - 将 SQLite 与 iOS 一起使用……非常初学者的程序

标签 ios sqlite

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

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

我意识到这是非常具体的,但我一直很难找到任何简单的方法来完成它。我是 iOS 开发的新手,如果有人能尽可能具体和详细,或者至少给我一些可以教我如何实现这一目标的资源,我将不胜感激。

我使用的是 Xcode v4.3.2,我不使用 Storyboard 或 ARC。我试图尽可能详细,但如您所知,我的目标非常简单。

我已经筋疲力尽了,我很感激能得到的所有帮助。

谢谢! -马特

最佳答案

  • 创建数据库文件:只需将 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

关于ios - 将 SQLite 与 iOS 一起使用……非常初学者的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438089/

相关文章:

javascript - 使用 jquery 和 sqlite/json 的静态产品页面

java - SQLiteOpenHelper 类中的调用 Activity

iOS Storyboard翻转水平动画禁用文本字段

iphone - If-Then 语句困惑,NSURL 结果不正确

java - 错误: deleting all rows instead of 1 row Android

android - 是否可以在android数据库中的文本字段上应用主键

ios - 当尝试按下按钮将 Sprite 的 zRotation 增加 1 度时,旋转不正确

iphone - iOS 扫描广播 channel

objective-c - UITableViewCell高度计算和委托(delegate)?

Python 和 sqlite3.ProgrammingError : Recursive use of cursors not allowed