СУПЕР ЖЕСТКИЙ ВОПРОС
Вот мой проект:
Я использую 3000 jpegs в iPhone Project.В обычной ситуации 3000 файлов загружаются в «NSBundle» (инкапсулированный с приложением) и затем загружаются на iPhone.Проблема в том, что приложение составляет около 500 мес.
Так что я хотел бы скопировать изображения в другой каталог (например, «Документы»), чем в пакете, а затем УДАЛИТЬ все jpeg из пакета.Моя идея состоит в том, что после первого запуска приложения, приложение будет только 2Mo, и следующие запуски будут очень быстрыми.
Моя первая идея была:
файл в Bundle: путь к файлу в файле Bundle. Место назначения: путь, куда я хочу поместить файл
if([manager copyItemAtPath:fileInBundle toPath:fileDestination error:&error])
if([manager removeItemAtPath:fileInBundle error:&error])
Конечно, я попытался 'moveItemToPath' ^^
Копия работает нормальноесли вы копируете за пределы «NSBundle», но удаление невозможно:
NSFilePath = "/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CF5C0ED352/myLovelyApp.app/Main.jpg";
NSUnderlyingError = Error Domain=NSPOSIXErrorDomain Code=1 "Operation could not be completed. Operation not permitted";
Очевидно, я проверяю, существует ли main.jpg с помощью «[manager fileExistsAtPath: fileInBundle]», и проверяю возможность удаления с помощью: «[manager isDeletableFileAtPath: fileInBundle] '(НЕТ!)
Итак, после этого я проверяю атрибуты разрешения POSIX для файла и каталога:
NSDictionary * whatPermissions = [атрибуты менеджераOfItemAtPath: fileInBundle error: & error];
NSLog (@ "File POSiX Permission:% @", [whatPermissions objectForKey: @ "NSFilePosixPermissions"]);
Я получаю 493 -> Chmod 755 -> read-Write-Exe / read-Exe / чтения Exe.Поэтому невозможно удалить или записать файл в этом NSBundle.
Я попытался принудительно переключить атрибут POSIX PERMISSION: [manager setAttributes: разрешение ofItemAtPath: fileInBundle error: & error] // установить разрешение posix на 511 (chmod777)
Но это не сработало.
Вторая идея: Итак, установка Xcode Building, возможно, была моим решением с флагом INSTALL PERMISSION:
'u + w, go-w, + rX '
, но я пробовал много возможностей, но ничего не получалось (может быть, я не нашел хорошего). Я попробовал:' u + rwx, go + rwx, a + rwx',' u + rw, go-rw, a + rwX '...
Но ничего не произошло. Я нашел' ALTERNATE_PERMISSIONS_FILES 'с помощью' ALTERNATE_MODE ', но, похоже, мне нужно заполнить список своими 3000JPG один за другим в параметрах XCode.И когда я попробовал всего 10 файлов.
Это не сработало.Я должен сказать, что я никогда не нахожу учебник или пост в блоге на эту тему.Так что, если вы знаете один из них.Пожалуйста, не стесняйтесь поделиться.
В Руководстве по системе сборки XCode НЕТ ПОМОЩИ !!!!
третья идея:
Я попытался изменить целевое назначение: я добавляю этап копирования файла в целевую систему.А затем поместите все изображение внутрь, но кажется, что оно не имеет никакого эффекта, и файл не загружается на iPhone.
КАК Я НАМ НАБРАТЬ СВОБОДНО 3000 ФАЙЛОВ ИЗОБРАЖЕНИЯ В СПРАВОЧНИКЕ И УДАЛИТЬ ЕГО.
Вот как выглядят каталоги iPhone:
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/myLovelyApp.app/number7_S.png",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/myLovelyApp.app/number8_N.png",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/myLovelyApp.app/number8_S.png",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/myLovelyApp.app/number9_N.png",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/myLovelyApp.app/number9_S.png",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/Documents",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/Library",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/Library/Caches",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/Library/Preferences",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/Library/Preferences/.GlobalPreferences.plist",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/Library/Preferences/com.apple.PeoplePicker.plist",
"private/var/mobile/Applications/4A173D2E-5CFC-4D12-978C-68CG5C0ED245/tmp",
Я бы хотел переместить файл из NSBundle в каталог Documents.
СПАСИБО ЗА ПОМОЩЬ