2016-05-14 3 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 

Если я использую путь без "~" путь остается неизменным, но изображение все еще не загружался.

Может ли кто-нибудь сказать мне, что я должен делать, чтобы он обращался к той же папке, которую делает основное приложение?

EDIT: Архивирование приложения и его экспорт, кажется, устраняют эту проблему. Однако мне все же хотелось бы знать, как сделать эту работу при разработке.

EDIT2: Это настолько странно! При работе с виджетами Todays Extension путь, как @"~/Pictures, приведет к /Users/Me/Libraries/Containers/ac.at.ImageViewerWidget/Data/, как то, что f ***, почему !? Когда я заставляю его использовать путь @"/Users/Me/Documents/Pictures и запускать его, использование памяти неуклонно увеличивается, пока оно не достигнет предела, и моя система попадает в ад. Я действительно этого не понимаю. Я предполагаю, что виджет не находит файлы, поэтому он пытается загрузить весь ssd. Я полагаю. Я действительно не знаю, в чем проблема.

Может ли кто-нибудь угодить привести меня к свету?

+0

Мне действительно нужна была помощь. Я также не могу найти что-либо в документации на яблоки о расширениях. – user148013

ответ

0

Не то, чтобы xcode сообщал вам, что что-то не так с вашим приложением. Это будет просто выделить всю память и сожжет ваш процессор,

ПОКА,

вы понимаете, что проблема вызвана отсутствием разрешений папки доступа. Geezuz! Добавить права доступа к папке для вашего приложения, если вы хотите получить доступ к чему-либо!

Смежные вопросы