2016-01-06 2 views
0

ли мое понимание правильно для iOS7-iOS9:Xcode и IOS приложение место размещение файлов данных по умолчанию

1) "встроенного" путь кэша приложения NSHomeDirectory() + "/ Библиотека/кэша /"

2) приложение запуска изображений и значков размещено NSBundle.mainBundle(). ResourcePath! (где эта карта до?)

3) «голубая» папка, которую я добавил в «фазах xcode - сборки», - копии ресурсов пакета, называемые «ownassets», помещается в ...? NSHomeDirectory() + «/ Library /»

Я просто привязав сделать 100% уверен, если я правильно понял, где файлы помещаются, так что я могу читать и загружать их во время выполнения приложения (и писать в моем кэш)

Примечание: Я понимаю, что код релиза следует использовать системные вызовы, чтобы получить пути, так как Apple, может изменение пути в будущих версиях IOS.

Примечание Для шланга, глядя на том, как получить нормальный IO файл доступ на чтение к папкам и содержание добавленных в «Build фазы> Копировать Bundle ресурсы» это как:. NSBundle.mainBundle() resourcePath! + «/» + Nameoffolder

+1

Никогда не используйте NSHomeDirectory для создания пути. – rmaddy

+0

Помните, что в наши дни предпочтительными являются URL-адреса. – Caleb

ответ

3

Вы не должны много думать о реальных местах на диске, но и использовать систему более высокого уровня API, чтобы найти файлы/пути:

  1. каталог

    кэшей:

    let cacheURL = try NSFileManager.defaultManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) 
    
  2. App ресурсы в пачке:

    • let image = UIImage(named: "imageName")
    • let path = NSBundle.mainBundle().pathForResource("image", ofType: "png")
  3. App ресурсы в подкаталогах:

    let path = NSBundle.mainBundle().pathForResource("info", ofType: "dat", inDirectory: "AdditionalResources") 
    

Для получения дополнительной информации см the File System Programming Guide.

+0

Я понимаю (и буду), но я пытаюсь понять его концептуально (то есть визуализирую его в голове, как выглядит файловая структура) – Tom

+2

В этой статье я отвечу на эти вопросы. 'NSHomeDirectory()' является файлом изолированной программы приложения, тогда как 'NSBundle.mainBundle(). BundleURL' - это пакет приложения, который содержит ресурсы, которые вы добавили во время компиляции. – jtbandes

+0

Окей - сверху ссылку, я вижу это «В iOS, библиотека находится внутри пакета данных приложений», поэтому я думаю, что «resourcePath» сопоставляется с этим (пока я понимаю, что это может быть и не так в будущем) - во всяком случае, я смогу проверить пути в один момент и сообщить, что они были для ссылки – Tom

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