0

ドキュメント ベースのアプリケーションでドキュメントのバージョンを復元しようとすると、次のエラーが発生します。

kCGErrorFailure: CGSDisplayID: CGSGetDisplayList() を使用する代わりに、アプリが [0 から CGSGetNumberOfDisplays()] を列挙しようとしています。補正中...
kCGErrorFailure: ブレークポイント @ CGErrorBreakpoint() を設定して、ログに記録されたエラーをキャッチします。

ドキュメントは変更されません。また、これが発生すると、ドキュメントの編集を開始するとすぐに、次のようなメッセージが表示されます。

ドキュメント [...] を自動保存できませんでした。ファイルは別のアプリケーションによって変更されました。

この2つの問題は関連している可能性があると思います。

バージョンは実装を必要とせずに機能するため、何をすべきか、または「チェック」するべきかわかりません。バージョンを使用して復元/元に戻すには、自動保存を有効にするだけでよいと Apple が言っているため、実際には混乱しています。そのエラーの原因を知っている人はいますか?

ありがとう。

4

2 に答える 2

0

私はあなたのすべての問題に遭遇し、私に多くの苦痛を引き起こしました。

kCGErrorFailure に関するエラーメッセージが表示されました...バージョンを閲覧する前にも。私には無害に思えるので、ほとんど無視しました。TextEdit もこのメッセージを吐き出すようです。(Apple のバグのようです)

「ドキュメントは変更されていません」については、こちらを確認してください: OSX ライオンのバージョンブラウザからの復元が機能していません...アイデア? (要するに、ドキュメントの UI を更新するためのコードは、元に戻されるドキュメントに対して呼び出されていない可能性があります) (私には文書化されていないように見えます)

自動保存の問題については、こちらを確認してください: http://www.cocoabuilder.com/archive/cocoa/306217-how-to-implement-auto Saving-browsing-versions-reverting-to-last-saved-in-lion.html (つまり、読み取りと書き込みの代わりにファイル ラッパー メソッドを使用します)。(Apple のバグのようです)

于 2011-08-06T05:25:56.750 に答える
0

autosavesInPlace に YES を返すだけでなく、ドキュメントは少なくとも updateChangeCount を呼び出す必要があります。ドキュメントが変更されるたびに NSChangeDone を渡す必要があります。これにより、自動保存される変更があることが「認識」されます。

于 2011-08-09T00:07:49.287 に答える