-1

私はsqlite3とiOSを使用しています。

リソースフォルダーにデータベース「2012」があります。アプリのディレクトリ フォルダーにバックアップ (2013 という名前) を作成したので、そこには同じ構造のデータベース 2012 と 2013 があります。

ユーザーが2012年または2013年に開くデータベースを選択できるView Controllerを作成しました。

"2013" NSString を connect メソッドに渡すにはどうすればよいですか?

-(void)connect
{
NSLog(@"%c",restore); // restore is a BOOL that becomes "YES" when i click the button for restore

if (restore  == YES)
{
    databaseName = [NSString stringWithFormat:@"%@.db",currentYear];
}
else
{
    databaseName = @"2012.db";
}
NSLog(@"Database name is: %@",databaseName);

// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

NSLog(@"Database path is: %@",databasePath);

[self checkAndCreateDatabase];

}

私は接続するために年の値を送信しようとしています:

NSString *year = restoreYear.text;
DatabaseDB *databaseDB = [[DatabaseDB alloc]init];
databaseDB.currentYear = year; //in DatabaseDB i have created property for current year and restore
databaseDB.restore = YES;
4

2 に答える 2

0

復元機能は、スナップショットが作成された時点に戻りたいと言います。これが本当に必要な場合は、バックアップしたデータベースを「アクティブな」データベースの名前にコピーするだけです。必要に応じて、最初にアクティブ コピーの名前を変更して、復元を元に戻すことができます。

于 2013-11-16T11:41:09.613 に答える
0

申し訳ありませんが、上記の質問は十分に明確ではありませんでした..

アプリの Resources フォルダーに sqlite データベースがあり、アプリを実行すると、データベースが Directory フォルダーにコピーされます。ユーザーがデータベースをバックアップできるメニューがあるので、2 つ目のデータベースが作成されます。今まではすべて問題ありません。

問題は、ユーザーが 2 番目のデータベースを復元するボタンをクリックしたときの復元にあります。データベースに 2 番目のデータベースに接続するように指示するにはどうすればよいですか? 接続メソッドで名前を渡すことができます。その後?次回アプリを開いたときに、2 番目のデータベースが開かれることをアプリケーションはどのように認識しますか??

ありがとうございました。

于 2013-11-13T10:03:35.423 に答える