2016-05-14 16 views
1

我正在尝试创建一个具有今天小部件扩展功能的应用程序。这个应用程序应该简单地访问一个文件夹中的图片,加载它们并将它们绘制到屏幕上。每小时一张照片。小部件应该做同样的,小部件明智。 在加载主应用程序图像并将其绘制到屏幕上完美的作品这样做:可可麦斯路径?

NSString *tildePath = @"~/Documents/Adrian/Art/desertMovie.jpg"; 
NSString *path = [tildePath stringByExpandingTildeInPath]; 
_image = [[NSImage alloc] initWithContentsOfFile:path]; 

扩展完全弄乱的路径。它使用与主应用程序相同的代码,但完全遮蔽了路径。

来源:

~/Documents/Adrian/Art/desertMovie.jpg 

到:

/Users/Adrian/Library/Containers/ac.at.hulala.AK.ImageViewer2.ImageViewerWidget/Data/Documents/Adrian/Art/desertMovie.jpg 

如果我使用不带路径的 “〜” 的路径保持不变,但仍没有图像得到加载。

有人能告诉我我必须做什么,它访问主应用程序相同的文件夹吗?

编辑: 归档应用程序并导出它似乎解决了这个问题。不过,我仍然想知道如何在开发过程中使其工作。

EDIT2: 这太奇怪了!在使用Todays Extension Widget时,像@"~/Pictures这样的路径会导致/Users/Me/Libraries/Containers/ac.at.ImageViewerWidget/Data/像f ***一样,为什么? 当我强制它使用路径@"/Users/Me/Documents/Pictures并运行它时,内存使用率稳步增加,直到达到极限,我的系统进入地狱。我真的不明白。我猜这个小部件没有找到任何文件,所以它试图加载整个ssd。我猜。我真的不知道这里有什么问题。

有人能带我进入光明吗?

+0

我真的需要一些帮助。我也没有找到任何关于扩展的苹果文档。 – user148013

回答

0

不是说xcode会告诉你,如果你的应用程序出了问题。它只是将分配你的整个内存和刻录你的cpu,

,直到

你意识到这个问题由于缺乏文件夹访问权限引起的。 Geezuz! 如果您想要访问某些内容,请为您的应用程序添加文件夹访问权限!