2009-04-15 12 views
0

私は、データベースとテーブルをsqlite3を通してMacbook上のターミナルを使って作成し、それを私のiPhoneアプリケーションで展開しました。テーブルから値を取得する&を挿入してシミュレータを正常に動作します。sqlite3データベースへのアクセス

しかし、実際のiPhoneにインストールすると動作しません。なぜですか?私はそれがデータベースのパスを得ることができないと思う、どのように私はそれを行うことができますか?

+0

iphoneアプリを開発するために使用するプラットフォームとツールはなんですか? – Petras

+0

質問にはわかりやすいタイトルが必要です。 –

答えて

1

データベースを基本アプリパスに残していますか?
実際のハードウェアでは、そのディレクトリ内のファイルに書き込むことはできません。読み込むだけで済みます。データベースに書き込むには、まずアクセス可能なディレクトリにコピーする必要があります。

私は(ファイル名は、データベースファイルの名前を含むNSStringのである)これに似た何かやってる

:基本的に

NSArray *docPaths = 
    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docPath = [docPaths objectAtIndex:0]; 
NSString *fullName = [docPath stringByAppendingPathComponent:fileName]; 
NSFileManager *fm = [NSFileManager defaultManager]; 
if (![fm fileExistsAtPath:fullName]) 
{ 
    NSString *path = [[NSBundle mainBundle] bundlePath]; 
    NSString *defaultName = [path stringByAppendingPathComponent:fileName]; 
    [fm copyItemAtPath:defaultName toPath:fullName error:NULL]; 
} 

を、ファイルが既に存在するかどうかを確認し、それをベースbundlePath場合からコピーそれはしません。

関連する問題