我有一个应用程序:

您可以将图像文件拖放到应用程序的停靠图标上,它将图像上传到免费的图像主机。在10.5中,您可以将图像直接从野生动物园(和其他任何浏览器)中拖出,并将其拖放到扩展坞中。 (应用程序从浏览器放入的临时文件夹中打开了该图像,并将其上传到网络。)

现在在10.6中,同一应用将不再接受从Safari(也包括其他浏览器)窗口中直接放到停靠图标上的图像。浏览器似乎将Internet URL“导出”到图像(http://somedomain.com/the_image.png),而不是在高速缓存中导出图像文件的文件名的10.5行为。从finder中删除的本地文件被打开并完美处理。

对我来说,后果是:我必须实现一项服务,该服务允许将URL拖放到我的停靠图标上。然后确定是否删除了本地文件名或远程URL。结果使样板代码仅决定我应该使用[NSData dataWithContentsOfFile]还是[NSData dataWithContentsOfURL]打开图像(不幸的是,您无法从本地文件名创建NSURL)

是否有适当的方法来处理此问题并摆脱样板? (在文件名前添加'file://'并以URL开头不起作用。)

最佳答案

(不幸的是,您无法通过本地文件名创建NSURL)


是的你可以。看看文档中的+[NSURL fileURLWithPath:]

10-08 10:53