0

したがって、RestKitの参照にinitメソッドがあることがわかります。objectStoreWithStoreFilename:inDirectory:usingSeedDatabaseName:managedObjectModel:delegateは、指定されたディレクトリでobjectStoreを初期化することを想定しています。「inDirectory」パラメータはNSStringを受け入れます。@ "Library /Caches"と[self.applicationCachesDirectoryabsoluteURL]を試しましたが、self.applicationCachesDirectoryはCachesディレクトリのURLを返しますが、例外が発生します。

ドキュメントの代わりにキャッシュディレクトリにsqliteDBを保存するために、このメソッドで「ライブラリ/キャッシュ」を指定するにはどうすればよいですか?

4

1 に答える 1

1

動作しました。キャッシュフォルダのパスをNSStringとして取得するヘルパーメソッドを作成しました

    - (NSString *)applicationCachesDirectoryString
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cachePath = [paths objectAtIndex:0];
    BOOL isDir = NO;
    NSError *error;
    if (! [[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) {
        [[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error];
    }
    return cachePath;
}

次に、それをobjectStoreinitメソッドに渡します。

self.objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:databaseName inDirectory:[self applicationCachesDirectoryString] usingSeedDatabaseName:seedDatabaseName managedObjectModel:managedObjectModel delegate:self];
于 2012-06-27T02:14:11.413 に答える