私のアプリには 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 はこの種類のファイルを開くことができません。
何らかの理由で、ドキュメントが開かないだけでなく、アプリでブックマークを作成することもできません。なぜそうなるのかについて何か考えはありますか?
前もって感謝します。