Macos 使用NSMediaQueries和沙箱
我正在使用NSMediaQueries检测已拍摄的新屏幕截图。但要将我的应用程序推送到商店,我需要将其沙盒化 不幸的是,沙箱破坏了我的NSMediaQueries,因为我无法访问返回的URL 我知道云应用程序是沙盒的,能够抓取最新的屏幕截图 有人知道如何解决这个问题吗 谢谢 守则摘要:Macos 使用NSMediaQueries和沙箱,macos,cocoa,sandbox,nsurl,Macos,Cocoa,Sandbox,Nsurl,我正在使用NSMediaQueries检测已拍摄的新屏幕截图。但要将我的应用程序推送到商店,我需要将其沙盒化 不幸的是,沙箱破坏了我的NSMediaQueries,因为我无法访问返回的URL 我知道云应用程序是沙盒的,能够抓取最新的屏幕截图 有人知道如何解决这个问题吗 谢谢 守则摘要: query = [[NSMetadataQuery alloc] init]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@
query = [[NSMetadataQuery alloc] init];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryUpdated:) name:NSMetadataQueryDidStartGatheringNotification object:query];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryUpdated:) name:NSMetadataQueryDidUpdateNotification object:query];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryUpdated:) name:NSMetadataQueryDidFinishGatheringNotification object:query];
[query setDelegate:self];
[query setPredicate:[NSPredicate predicateWithFormat:@"kMDItemIsScreenCapture = 1"]];
[query startQuery];
我与苹果公司进行了讨论。事实证明,如果您没有访问该文件夹的权限,URL将仅为
nil
您正在访问的是什么?返回的URL是否在粘贴板上?此外,在沙箱处理时,您必须为希望应用程序执行的操作启用权限。您应该阅读以确保正确实现了沙盒。我已经阅读了。这些是截图吗?是的,它们确实返回URL(在非沙盒模式下指向桌面),您从哪里访问URL?你能发布一些代码吗?用代码摘录更新。想知道我做错了什么吗当你记录[查询结果]时你看到了什么?如果您没有得到一个NSMetadataItem
s数组,则某些内容已损坏。我会开始在代码中设置大量nslog,看看它的失败之处。
numberOfScreenshots = [query resultCount];
[self uploadToAmazonS3:[[[query results]objectAtIndex:([query resultCount]-1)]valueForAttribute:NSMetadataItemURLKey]];