Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 沙盒扩展创建失败错误_Cocoa_Drag And Drop_Appstore Sandbox - Fatal编程技术网

Cocoa 沙盒扩展创建失败错误

Cocoa 沙盒扩展创建失败错误,cocoa,drag-and-drop,appstore-sandbox,Cocoa,Drag And Drop,Appstore Sandbox,在我的沙盒应用程序中,我试图将具有安全作用域的NSURL放到粘贴板上,以便从NSTableView拖放到finder(反之亦然) 拖动的代码相当简单,基本上使用NSURL数组在粘贴板上执行WriteObject操作: - (BOOL) tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pasteboard { Cr

在我的沙盒应用程序中,我试图将具有安全作用域的NSURL放到粘贴板上,以便从NSTableView拖放到finder(反之亦然)

拖动的代码相当简单,基本上使用NSURL数组在粘贴板上执行WriteObject操作:

- (BOOL)   tableView:(NSTableView *)tv
writeRowsWithIndexes:(NSIndexSet *)rowIndexes
        toPasteboard:(NSPasteboard *)pasteboard
{
    Crate *selectedCrate = (Crate *)[self.cratesListController selectedObjects][0];

    NSMutableArray *pasteboardArray = [NSMutableArray array];
    [rowIndexes enumerateIndexesUsingBlock:^(NSUInteger rowIndex, BOOL *stop) {
        Track *selectedTrack = [self.tracksViewedInTrackList objectAtIndex:rowIndex];

        [selectedTrack addURLToPasteboardArray:pasteboardArray];
    }];

    if (!pasteboardArray.count) {
        return NO;
    }

    for (NSURL *url in pasteboardArray) {
        [url startAccessingSecurityScopedResource];
    }

    [pasteboard writeObjects:pasteboardArray];

    for (NSURL *url in pasteboardArray) {
        [url stopAccessingSecurityScopedResource];
    }

    return YES;
}
这很好,我可以将文件放到桌面上,但我会记录以下错误:

2013-11-19 10:29:30.897 Test[1287:532f] sandbox extension creation failed: permissions     error for path: [/Users/didier/Music/Gigs/Air Miles (2000 And One & DJ Madskillz).aif]
2013-11-19 10:29:30.897 Test[1287:532f] __CFPasteboardCreateSandboxExtensionDataFromCFData : failed to obtain sandbox extension data for url [file:///Users/didier/Music/Gigs/Air%20Miles%20(2000%20And%20One%20&%20DJ%20Madskillz).aif?applesecurityscope=623934663665316437323138646462333764326637373538626564363731393563303065616233303b30303030303030303b30303030303030303b303030303030303030303030303032303b636f6d2e6170706c652e6170702d73616e64626f782e726561642d77726974653b30303030303030313b30313030303030343b303030303030303030303061336431343b2f75736572732f64616d69656e2f6d757369632f67696773]
当尝试从粘贴板检索URL时,在我自己的应用程序中放置,如下所示:

NSArray *urls = [pasteboard readObjectsForClasses:@[ [NSURL class] ]
                                          options:@{
NSPasteboardURLReadingFileURLsOnlyKey : @YES }];
代码仍然有效,但记录了以下错误:

2013-11-19 10:37:57.220 Krates[1287:303] No valid sandbox extension for item: [789514] of flavor: [public.file-url] was created.
2013-11-19 10:37:57.220 Krates[1287:303] Failed to get a sandbox extensions for itemIdentifier (789514).  The data for the sandbox extension was NULL

我是否忽略了这些,或者我的代码中缺少了什么?

我没有解释为什么会发生这种情况,因此这只是一个注释,但我看到了完全相同的事情,没有已知的原因,并且看起来完全无害。在某些方面,这是令人鼓舞的:)我有相同的错误消息(没有有效的…)和(未能获得…)使用非沙盒服务。我只需加上usleep(5000);在读取Objects之前,请单击“循环”并单击“确定”。它只包含url,不包含字符串。当苹果停止其怪异行为时,我将删除此黑客行为:)