2016-01-08 2 views
0

В каталоге документов для моего приложения у меня есть файл Q1.dat, который я использую в своей программе. Я к нему доступ через путь:Постоянный каталог файлов в Xcode

func createArrayPath() -> String? { 
    if let docsPath: String = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last { 
     return ((docsPath as NSString).stringByAppendingPathComponent("Q1") as NSString).stringByAppendingPathExtension("dat") 
    } 
    return nil 
} 

При запуске программы на другом устройстве, однако, создается каталог различных документов, а файл больше нет. Есть ли место, где я могу поместить файл, чтобы я мог всегда получать к нему доступ независимо от того, на каком устройстве я работаю?

+0

Возможно использование iCloud? Как вы ожидаете, что устройства будут обмениваться данными? – jtbandes

+0

Есть ли способ загрузить файл, когда он загружает приложение? – Lahav

ответ

2

Documents directory предназначен для данных, созданных пользователем.

Похоже, вы хотите связать resource с вашим приложением. Вы можете сделать это просто dragging the file в Xcode, который автоматически настроит его для копирования в ваш комплект приложений, и вы можете найти его с помощью URLForResource(_:withExtension:).

Если файл очень большой, вы можете захотеть его загрузить отдельно от основного приложения. Для этого вы можете использовать новую функцию On-Demand Resources.

+0

Могу ли я найти путь к файлу, указав путь = NSBundle.mainBundle(). URLForResource («Q1», withExtension: «dat») !. path! – Lahav

+0

Да, но (а) не используйте '!', Потому что вы игнорируете ошибки и (b) не используете 'путь', просто используйте' NSData (contentsOfURL: ...) 'для чтения данных. – jtbandes

+0

Итак, я могу просто перетащить файл в основную папку для проекта, рядом с Assets.xcassets, и он должен найти его? – Lahav

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