4

入力に使用する2つのテキストフィールドがあるアプリケーションを作成しようとしています。テキストフィールドから取得した入力は、文字列として初期化されています。だから私が達成したいのは:

  • Xcodeプロジェクト内に保存されるSQLiteデータベース(ファイル)を作成します(どこに保存できるかはわかりませんが、読み取りと書き込みができる必要があります)。
  • 次に、(テキストフィールド入力からの)文字列をSQLiteテーブルに配置します。SQLiteテーブルには(簡単にするために)2つのフィールドしかありません。ボタンを使用して、テキストフィールドからの入力を受け入れ、入力を文字列に配置してから、文字列の値をラベルに配置しています。
  • 最終的には、テキストフィールドの文字列をテーブルに配置し、テーブルを読み取って文字列を「取得」し、ラベルに表示したいと思います。これはすべて、ボタンをクリックするだけで実行できます。

これは非常に具体的だと思いますが、これを達成するための簡単なものを見つけるのに苦労しています。私はiOS開発に非常に慣れていないので、誰かができるだけ具体的かつ詳細に説明できるか、少なくともこれを達成する方法を教えてくれるリソースを教えていただければ幸いです。

Xcode v4.3.2を使用していますが、ストーリーボードまたはARCを使用していません。私はできるだけ詳細にしようとしましたが、あなたができる限り、私の目標は本当に単純です。

私はタップアウトされ、私が得ることができるすべての助けに感謝します。

ありがとう!-マット

4

2 に答える 2

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
于 2012-05-03T19:55:56.563 に答える
0

ここにSQLiteを使用するためのサンプルプロジェクトがあります:https ://github.com/AaronBratcher/ABSQLite

従来のデータベース方式でSQLiteにアクセスするためのクラスがあります。サンプルプロジェクトはSQLを使用してテーブルを作成し、アプリのさまざまなバージョンでスキーマを変更する方法を示しています。

于 2013-07-11T14:55:57.177 に答える