2014-11-22 2 views
1

Я столкнулся с проблемой, с которой я не могу найти решение. Я много раз искал форумы, но ничего не мог найти. Надеюсь, кто-то может пролить свет.xCode: Получение изображений из каталога документов приложений

У меня есть приложение, которое может сохранять изображения. Они сохраняются в каталоге документов приложений, и путь к ним сохраняется в базе данных sqlite. Каждый раз, когда я запускаю/создаю приложение, он больше не может получать изображения, которые уже находятся в каталоге документов. Во время той же фазы сборки я могу повторно сохранить изображения, а затем я могу получить их просто отлично, но как только я запустил/создаю приложение снова, он не может получить изображения. Изображения не удаляются, и путь по-прежнему сохраняется.

Это, как я стараюсь выбирать их в моем методе ViewDidLoad

//database was opened. Getting path to image 
NSString *logoPath = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 21)]; 
//use path to load image to a UIImage view 
[self.logoView setImage:[UIImage imageWithContentsOfFile:logoPath]]; 

Я подтвердил, что изображение находится в каталоге документов еще и путь правильно присвоенного в моей первой строке кода выше. Этот код работает только при запуске/создании приложения. Как только приложение запущено, я могу сохранить изображения в каталоге и получить их с помощью этого же кода просто отлично, но как только я запустил/создаю приложение снова, изображения, сохраненные в предыдущей сборке, не могут быть подняты, хотя я могу видеть их в каталоге все еще (я использую iExplorer для просмотра моих каталогов iPhones).

Любые идеи? Я думаю, что, возможно, мне нужно инициировать эти образы в каталоге так или иначе, чтобы использовать их сразу после сборки.

ОБНОВЛЕНИЕ - дополнительная информация в случае, если это поможет. После того, как приложение построено на моем iPhone, я могу закрыть приложение и снова открыть его, и изображения работают нормально. Я даже могу полностью закрыть приложение (дважды нажмите кнопку «домой» и закончить процесс приложения), и когда я перезапущу приложение, изображения будут извлечены из каталога. Но как только я снова создаю приложение через xCode, я не могу получить доступ к изображениям. Что-то меняется при создании новой сборки.

ОБНОВЛЕНИЕ 2 - Я думаю, что нашел проблему, и она находится на пути. Это мой путь

/var/mobile/Containers/Data/Application/8A387845-7B1F-4228-9E7E-2498EC302C5A/Documents/RYal7UXrLvcompanyLogo.png

После того как я снова построить приложение, это теперь новый путь, когда я сохраняю изображение снова

/var/mobile/Containers/Data/Application/C0C30E2F-05D8-48F4-A0FF-603359AF5130/Documents/RYal7UXrLvcompanyLogo.png

Похоже части между ними приложений и Изменения документов после каждой сборки, поэтому путь, который я сохраняю в моем sqlite db, больше не действует после нового b uild. Итак, теперь мне нужно выяснить, что такое средняя часть, которая продолжает меняться и как ее получить после каждой сборки, чтобы я мог обновлять мои пути к моим изображениям.

+0

То, что вы описываете, должно работать. Вам нечего делать, чтобы получить доступ к существующим файлам после повторного запуска. Вы уверены, что 'logoPath' - это то, что вы ожидаете от старых изображений? Какова природа неудачи, которую вы видите? –

+0

Спасибо, Бен. Я пойду глубже в logoPath, чтобы увидеть, пропустил ли я что-то. Характер неудачи заключается в том, что мой логотип (изображение) не загружается в мой UIImageView при создании приложения. См. Обновление, которое я добавил к моему вопросу выше. – adrian1kat

+0

Спасибо, Бен, ты заставил меня снова взглянуть на мои пути, хотя я убедился, что они верны. См. Обновление 2 в моем вопросе. – adrian1kat

ответ

1

Проблема была в пути. Каждый раз, когда была создана новая сборка, часть пути к каталогу документов изменилась. См. ОБНОВЛЕНИЕ 2 в исходном вопросе выше.

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