4

これを使用してsqliteDBをアプリケーションに追加しようとしています:CoreData:iOSアプリにデータをプリロードします

チュートリアルに続いて、私は問題にぶつかりました:

[NSFileManager copyItemAtPath:toPath:error:]: source path is nil 

私は次のコードを使用します:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
    if (__persistentStoreCoordinator != nil) {
    return __persistentStoreCoordinator;
}

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Peter_R0_1.sqlite"];

if(![[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]) {
    NSString *sqlitePath = [[NSBundle mainBundle] pathForResource:@"Peter_R0_1" ofType:@"sqlite" inDirectory:nil];
    NSError *anyError = nil;
    BOOL success = [[NSFileManager defaultManager] copyItemAtPath:sqlitePath toPath:[storeURL path] error:&anyError];
}


NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error])
{

    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}    

return __persistentStoreCoordinator;

}

この問題について助けていただければ幸いです

4

1 に答える 1

17

そのエラーは、NSString *sqlitePath99 == nil%の確率で次の1つ以上であることを意味します。

  1. ファイルがプロジェクトの正しいターゲットに追加されていません
    • ファイルの[ファイルインスペクター]ビューの[ターゲットメンバーシップ]で確認しPeter_R0_1.sqliteます)
  2. および/または:ファイルをデフォルトではなく特定のサブディレクトリにコピーしています。
    • ファイルがターゲットの「ビルドフェーズ」の下の「バンドルリソースのコピー」の下にリストされており、カスタムの宛先またはサブパスを使用した「ファイルのコピー」の下にリストされていないことを確認します。
  3. および/または:ファイル名にタイプミスがあります。
于 2012-06-12T23:07:41.977 に答える