Ошибка Swift 2.1 NSFileManager copyItemAtPath с ошибкой домена = NSPOSIXErrorDomain Code = 17 Файл существует

После обновления моего проекта до Swift 2.1 NSFileManger copyItemAtPath выдает следующую ошибку.

Error Domain=NSCocoaErrorDomain Code=260 "The file "Settings.plist" couldn’t be opened because there is no such file."
NSFilePath=/Users/nick/Library/Developer/CoreSimulator/Devices/95856F10-9770-44B5-B990-B461E6991B79/data/Containers/Bundle/Application/17AAAD05-33FE-470A-9617-C8E378371E2E/MyApp.app/Settings.plist,
NSDestinationFilePath=/Users/nick/Library/Developer/CoreSimulator/Devices/95856F10-9770-44B5-B990-B461E6991B79/data/Containers/Data/Application/020503D6-F7CE-47D2-83A7-D4B7D86E6D1D/Documents/Settings.plist, 
NSUnderlyingError=0x7994daf0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

Базовый исходный файл и папка назначения существуют, но копирование всегда завершается ошибкой.

let _documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let storePath = NSURL(fileURLWithPath: _documentsDirectory).URLByAppendingPathComponent("\(storeName).plist").absoluteString

let fileManager = NSFileManager.defaultManager()

if (!fileManager.fileExistsAtPath(storePath)) {
    if let bundle = NSBundle.mainBundle().pathForResource(storeName, ofType:"plist") {
        do {
            try fileManager.copyItemAtPath(bundle, toPath: storePath)
                return storePath
            } catch let error as NSError {
                print(error)
                return nil
            }
        }...

Файл существует, и print("Exists:", fileManager.fileExistsAtPath(bundle)) возвращает значение true.

Изучив Как найти NSDocumentDirectory в swift? и другие, я попробовал существует множество различных методов для получения каталога Documents и основных ресурсов пакета, но я просто не могу скопировать файл.

Все отлично работало в Swift 1.2.


person PassKit    schedule 17.12.2015    source источник
comment
К сожалению, извиняюсь, я копировал код, который я пытался проверить, было ли дело в имени файла. Внесли поправки.   -  person PassKit    schedule 17.12.2015
comment
Затем посмотрите stackoverflow.com/questions/34135305/: absoluteString - неправильный метод преобразования URL-адреса в путь к файлу storePath.   -  person Martin R    schedule 17.12.2015
comment
Спасибо, замена .absoluteString на .path! помогла.   -  person PassKit    schedule 17.12.2015