Cocoa 弄乱了路径?

Cocoa messes path up?

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

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

如果我使用不带“~”的路径,路径保持不变,但图像仍然无法加载。

有人可以告诉我我必须做什么才能访问主应用程序访问的同一文件夹吗?

编辑: 存档应用程序并将其导出似乎可以解决该问题。但是我仍然想知道如何在开发时使它工作。

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

有人可以带我进入光明吗?

如果您的应用出现问题,xcode 不会告诉您。它只会分配你的整个内存并烧掉你的 cpu,

直到,

您意识到问题是由于缺少文件夹访问权限引起的。天哪! 如果您想访问某些内容,请向您的应用程序添加文件夹访问权限!