2

私のアプリには 2 つのカスタム ドキュメント タイプがあります。どちらもターゲットで宣言され、それらの UTI がエクスポートされます。どちらの UTI も public.data と public.content に準拠しています。ドキュメントは両方とも、ディスクへの読み取りと書き込みに NSKeyedArchiver を使用します。

DocumentType1 の NSDocument サブクラス内で、開く URL を見つけるために NSOpenPanel を実行した後、次のコードを使用して DocumentType2 のドキュメントを開きます。

self.docType2FileURL = [openPanel URLs][0];
NSLog(@"docType2FileURL: %@", self. docType2FileURL);
NSError *err = nil;
self.docType2FileSecurityScopedBookmark = [NSURL bookmarkDataWithContentsOfURL:self.docType2FileURL error:&err];
if (err != nil) {
    NSLog(@"bookmark error: %@", err);
}
NSLog(@"bookmark: %@", self.docType2FileSecurityScopedBookmark);
[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:self.docType2FileURL display:NO completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"No error.");
    }
    self.docType2pointer = (DocumentType2 *)document;
}];

これは失敗しており、次のログ ステートメントが生成されます。

2012-10-07 11:05:37.956 MyApp[64151:303] docType2FileURL: file://localhost/path/to/file2.docType2

2012-10-07 11:05:37.958 MyApp[64151:303] ブックマーク エラー: エラー Domain=NSCocoaErrorDomain Code=256 「ファイルを開けませんでした。」

2012-10-07 11:05:37.959 MyApp[64151:303] ブックマーク: (null)

2012-10-07 11:05:38.015 MyApp[64151:303] エラー: エラー ドメイン = NSCocoaErrorDomain コード = 256 「ドキュメント「file.docType2 の名前」を開けませんでした。MyApp はこの種類のファイルを開くことができません。UserInfo=0x1001b2c30 {NSLocalizedFailureReason=MyApp はこのタイプのファイルを開くことができません。, NSLocalizedDescription=ドキュメント「ファイル名.docType2」を開くことができませんでした。MyApp はこの種類のファイルを開くことができません。

何らかの理由で、ドキュメントが開かないだけでなく、アプリでブックマークを作成することもできません。なぜそうなるのかについて何か考えはありますか?

前もって感謝します。

4

0 に答える 0