SnowLeopard用にすでに作成されているバージョンをアプリケーションに実装しようとしています。これは、SQLiteストレージを備えたドキュメントベースのアプリケーションです。各ドキュメントはSQLiteデータベースファイルとして保存されます。
NSPersistentDocumentサブクラスに適切なメソッドを実装しました。
+ (BOOL)autosavesInPlace {return YES;}
+ (BOOL)preservesVersions {return YES;}
これで、アプリケーションに「バージョンの保存」などの新しいファイルメニューが表示されます。アプリで新しいドキュメントを作成し、保存し、変更を加えて、もう一度保存します。バージョンブラウザに入ると、次のように表示されます。
kCGErrorFailure: CGSDisplayID: App trying to enumerate [0 to CGSGetNumberOfDisplays()] instead of using CGSGetDisplayList(). Compensating...
kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
バージョン一覧のバージョンブラウザの右側にいくつかのバージョンが表示されますが、ウィンドウのスタックに表示されません。ウィンドウはスタックしているように見えますが、完全に透明です。リスト内のいずれかのバージョンをクリックすると、ログが表示されます。
CoreData: error: (8) attempt to write a readonly database
バージョンの1つを復元しようとした場合よりも、バージョンブラウザは通常は閉じていますが、ウィンドウが表示されず、プログラムが応答を停止します。
それが何を意味するのか理解できません。バージョンの保存や復元に問題がありますか?アイデアがありません。どんな助けにも感謝します。