2016-12-16 2 views
-1

Кажется, documentDirectory в Xcode8/Swift3/iOS10, в рамках, на iOS кажется неуничтомым.iOS10 + Xcode8 documentDirectory странное поведение

API, используемый/пробовал:

FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 

NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 

(последний один, кажется, не следует отдавать предпочтение в Swift, который я могу понять)

Теперь, когда я пытаюсь писать файлы в URL вернулся в этой области я, похоже, не способен это сделать (как Simulator, так и устройство). Загрузка контейнера или его проверка также не отображают файлы (я пробовал несколько способов записи). Кроме того, попытка создать каталог для записи, похоже, терпит неудачу.

Странно то, что нет ошибки, возвращаемой с использованием API или самого Файлового Менеджера.

Есть ли какой-то ужасный момент, который мне не хватает? Это ошибка, о которой я должен сообщить? В настоящее время я перешел к созданию каталога в библиотеке/вместо этого, поскольку это похоже на работу и не должно быть столь же изменчивым, как Library/Cache /.

Код, используемый для записи (был использован realm.io, прежде чем я решил сделать это):

let URLs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
let data = Data.random(32) // Generates a 32 byte long random blob 
try! data.write(to: URLs.last!) // Crashing here with a forced unwrap is fine 
+0

Первый возвращает URL-адрес второй путь –

+0

@LeoDabus да, но я имел в виду это в коде, следующем за этими API. Хороший момент, чтобы подняться. Это раздражает, например, при доступе к поддержке приложений. –

+1

Можете ли вы показать нам код, который вы используете для записи в каталог? – retainCount

ответ

0

Оказывается, вам нужно полностью сбросить свои Симуляторы и перезапустить Xcode. Забавные вещи.

0

путь, который вы пишете недействителен - вы передаете в пути каталога вместо путь к файлу, который вы хотите создать. Вы можете создать такой путь:

let path = NSString(string: URLs.last!.path).appendingPathComponent("foo.txt") 
+0

Спасибо за ваши вводные данные и время до сих пор, однако я пробовал делать это так, и это, похоже, мало помогает, оба пути, за исключением файла: // part полностью совпадают с символом. Контейнер после реализации: https://www.dropbox.com/s/rj8hufkc0yb9lx6/Screenshot%202016-12-17%2001.54.59.png?dl=0 –

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