#objective-c #ios #camera #file-management
#objective-c #iOS #камера #управление файлами
Вопрос:
Я создал групповую папку в моем проекте Xcode с именем USER_PHOTO
Затем я сохраняю некоторые изображения в эту папку.
В моем приложении я открываю режим камеры.
Как я могу сохранить захваченные изображения в папку «USER_PHOTO»? Кроме того, как я могу прочитать все изображения из папки?
Пожалуйста, дайте мне идеи для решения этих проблем. Заранее спасибо.
Ответ №1:
Я думаю, у вас неправильное представление об этом. Группы и папки, которые вы создаете в Xcode, не отображаются в вашем приложении при запуске на устройстве iOS. Вы можете увидеть, что происходит, найдя встроенное приложение в папках симулятора (в разделе ~/Library /Application Support / iPhone Simulator /»и заглянув в пакет его приложений. Вы увидите, что все ваши файлы находятся там, в одной большой папке. Это отличается от Mac App, где у вас есть несколько папок для ресурсов, кода и т.д.).
Итак, чтобы прочитать изображения, вы просто считываете их из папки вашего приложения. Используйте NSBundle pathForResource:OfType:, чтобы добраться до них. Путь к «ресурсу» в iOS идентичен пути к папке вашего приложения.
Кроме того, на iOS ваше приложение может выполнять запись только в несколько папок рядом со своим пакетом .app, например, «Документы». Вы также можете увидеть это в папках симулятора.
Класс NSBundle предлагает функции для получения путей к этим папкам.
Затем вы также можете настроить свое приложение (с помощью клавиши plist) так, чтобы папка Documents была видна в iTunes, чтобы затем вы могли копировать сохраненные файлы на свой Mac / PC через iTunes.
Ответ №2:
Это можно сделать следующим образом,
NSString *animationFolderName = UIDeviceOrientationIsPortrait(mDeviceOrientation)? @"Portrait_animation":@"Landscape_animation";
int index = 0;
NSMutableArray *imagesArray = [[NSMutableArray alloc] init];
for (index = 1; index <= kMaxAnimationImages; index )
{
NSString *cname = [animationFolderName stringByAppendingFormat:@"/%d.png", index];
UIImage *img = [UIImage imageNamed:cname];
if (img)
[imagesArray addObject:img];
}