5

「RaiseMan」という単純なドキュメントベースの Cocoa アプリがあります。ファイルを保存しようとすると、コンソールに次のメッセージが表示されます。

-[NSDocumentController fileExtensionsFromType:] is deprecated, and does not work when passed a uniform type identifier (UTI). If the application didn't invoke it directly then the problem is probably that some other NSDocument or NSDocumentController method is getting confused by a UTI that's not actually declared anywhere. Maybe it should be declared in the UTExportedTypeDeclarations section of this app's Info.plist but is not. The alleged UTI in question is "com.bignerdranch.raiseman-doc".

現在のファイルを「テスト」として保存すると、.plist として開き、Raiseman アプリでは開かないファイルになります。「Test.rsmn」(明示的に拡張子を入力) として保存すると、Raiseman タイプのファイルとして保存されますが、ファイルを再度開くと、ユーザー設定または設定パネル (.xib) にアクセスできません。 .

コンテキスト:私は現在、Aaron Hillegass のMac OS X 用プログラミング の第 13 章に取り組んでいます...

4

2 に答える 2

5

そのため、目的の結果を得るために、プロジェクト ターゲットのプロパティ インスペクターで、識別子と UTI タイプ (ドキュメント タイプ テーブル内)、および .plist ファイル内の UT タイプ識別子がすべて同じであることを確認しました。<key>UTTypeIdentifier</key> <string>"com.yourDomainName.ProductName"</string>.

于 2013-05-06T13:39:42.023 に答える
3

私にとっての解決策は、(警告が示すように) 新しいエクスポートされた UTIを作成し、ドキュメント タイプからデータをコピーすることでした。クリーン ビルド フォルダー(⇧⌘K) の後、警告は消えました。インポートされた UTIを作成しませんでした。

プロセスはここに文書化されています:

独自の UTI を持つカスタム ドキュメント タイプを定義する場合は、UTI をエクスポートする必要があります。

于 2019-09-12T10:58:24.947 に答える