2015-06-11 2 views
0

Я загрузил некоторый код, который ранее работал для кодера, который смог нормально работать в своем приложении.UserDomainMask - Что его заменяет?

Однако, когда я пытаюсь использовать код для сохранения данных в памяти iPhone я получаю сообщение об ошибке с указанием Use of unresolved Identifier UserDomainMask..

Я попытался с помощью NSUserDomiainMask, чтобы заменить его, и, кажется, не решить эту проблему. Кажется, что кодер, возможно, использовал бета-версию Xcode6 для своего приложения.

Может кто-нибудь скажет мне, что должно заменить UserDomainMask в коде ниже?

здесь код:

func documentsDirectory() -> string { 
    let documentsFolderPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask, UserDomainMask, true)[0] as String 
    return documentsFolderPath 
} 

С наилучшими пожеланиями.

Del

ответ

0

NSSearchPathDomainMask, UserDomainMask неправильно, оно должно быть объединены в один аргумент: NSSearchPathDomainMask.UserDomainMask

as потребности быть as! в обратное приведение.

Нет необходимости иметь префиксы: NSSearchPathDirectory и NSSearchPathDomainMask, поскольку они будут выводиться из типов аргументов.

Вместо индексации с [0] безопаснее использовать .first '

Использование:

Swift 2.x

let documentsFolderPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String 

Полный метод:

func documentsDirectory() -> String { 
    let documentsFolderPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String 
    return documentsFolderPath 
} 

Swift 3

func documentsDirectory() -> String { 
    let documentsFolderPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first 
    return documentsFolderPath! 
} 
+0

Thanx Zaph за ответ. –

+0

Эй, заф, я смущен тем, что относится к '.first'. Я знаю, что это означает первый элемент в наборе, но почему именно есть несколько элементов в '.UserDomainMask'? Можно ли сказать, что вы всегда хотите сохранять/искать файлы в первом элементе? – MarksCode

+0

'NSSearchPathForDirectoriesInDomains' возвращает массив' String', поэтому элемент нужно выбрать. В случае '.documentDirectory' есть один, поэтому выбирается первый элемент массива. – zaph

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