私は小さなデータベース駆動型アプリをやっています。xcodeのサポートファイルの下にSQLiteデータベースファイルがあります。最初は、メインバンドルにあるときにデータを書き込もうとしていましたが、書き込めませんでした。検索した後、私はこの答えに出くわし、コードを次のように変更しました。
- (void)viewDidLoad
{
[super viewDidLoad];
BOOL success;
NSFileManager *filemngr = [[NSFileManager alloc] init];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *writableDbPath = [documentDirectory stringByAppendingPathComponent:@"contacts.sqlite"];
success = [filemngr fileExistsAtPath:writableDbPath];
if(!success)
{
[status setText:@"Error occurred!"];
}
NSString *defaultDbPath = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"contacts.sqlite"];
success = [filemngr copyItemAtPath:defaultDbPath toPath:writableDbPath error:&error];
if (!success)
{
[status setText:[error localizedDescription]];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error!"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}
ファイルを書き込み可能な場所(UIAlertViewが表示されている場所)にコピーしようとすると、最後のifブロックで次のエラーが発生します。
操作を完了できませんでした。(ココアエラー516)
誰かがこのエラーを修正する方法を教えてもらえますか?
ありがとうございました。