Using SQLite with iOS… very beginner program

喜欢而已 提交于 2020-01-14 10:42:21

问题


I am attempting to write an application in which I have two text fields that I will be using for input. The input taken from the text fields are being initialized as a string. So what I want to accomplish is:

  • Create an SQLite database (file) that will be saved within the Xcode project (I'm not sure where it can be saved to, but I would need to be able to read it and write to it).
  • I then want to place the strings (from the text field inputs) into the SQLite table, which will only have two fields (for simplicity). I'm using a button to accept the input from the text fields, place the input into strings, and then put the value of the strings into a label(s).
  • I ultimately will want to place the strings from the text fields into the table, and then read the table to "grab" the strings and display them into the labels. All of this would be done by the click of a button.

I realize this is very specific, but I have been having a difficult time finding anything simple to accomplish this. I am very new to iOS development and I appreciate if anyone could be as specific and detailed as possible, or at least point me to some resources that would teach me how to accomplish this.

I am using Xcode v4.3.2 and I do not use Storyboard or ARC. I tried to be as detailed as possible, but as you can, my goal is really simple.

I'm tapped out and I appreciate all the help I can get.

Thanks! -Matt


回答1:


  • creating a database file: simply drop your data.sqlite file in your xcode project, as you drop any other class or image resource. Please note, that you will have to copy the file to writeable directory after app installation. take a look at createeditablecopyofdatabaseifneeded.
  • open your database with sqlite3_open with respect to your new database location.
  • query the database as you like with sqlite3_prepare_v2

a simple query snippet looks like:

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



回答2:


There is an example project for using SQLite here you can refer to: https://github.com/AaronBratcher/ABSQLite

It has classes for accessing SQLite in a more traditional database way. The sample project uses SQL to create the tables and shows how you can change the schema over different versions of your app.



来源:https://stackoverflow.com/questions/10438089/using-sqlite-with-ios-very-beginner-program

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!