0

NSMutableDictionaryNSMutableArrayがあります。このアプリケーションでは、ユーザーがplistを使用して配列をXMLプロジェクト ファイルとして保存できます。アプリケーションがサンドボックス化される前に、すべてが正常に機能します。ディクショナリには、ファイル名、画像の幅、画像の高さ、ファイル パスなどをすべて文字列として格納するためのキーが含まれています。

ここで、アプリケーションがサンドボックス化されているときにNSOpenPanelでプロジェクト ファイルを読み取ると、うまくいきません。アプリケーションはcom.apple.security.files.user-selected.read-write を有効にするため、プロジェクト ファイルを読み取ることができます。ただし、ファイル パスを使用してイメージを作成することはできません。

- tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)TableColumn row:(NSInteger)rowIndex {
    NSString *imagename = [[imageArray1 objectAtIndex:rowIndex] objectForKey:key1a];

    if ([[TableColumn identifier] isEqualToString:@"images"]) {
        if ([self fileExists:imagepath]) {
            NSImage *image0 = :[[NSImage alloc] initWithContentsOfFile:imagepath]; // ==> failure 
            return image0;
        } else {
            return nil;
        }
    }
}

- (void)tableViewSelectionDidChange:(NSNotification *)notification {
    NSInteger r1 = [tableview1 selectedRow];
    if (r1 >=0) {
        NSString *filepath = [[imageArray1 objectAtIndex:r1] objectForKey:key1b];       
        if ([self fileExists:filepath]) {
            pictureimage10.image = [[NSImage alloc] initWithContentsOfFile:filepath]; // ==> failure 
        } else {
                    ...
        }
    } else {
        ...
    }
}

したがって、アプリケーションがファイル パスをNSImageに渡すと、画像は表示されません。サンドボックス アプリケーションについて、私が知らないことがあるのだろうか?

アドバイスありがとうございます。

4

0 に答える 0