Должен ли я объявить UserDefaults как переменную или нет? - PullRequest
0 голосов
/ 10 января 2019

Я беспокоюсь о том, должен ли я объявлять UserDefaults как переменную или нет, как в следующем коде:

Шаблон A

let userDefaults = UserDefaults.standard

if let userDefaults.object(forKey: "isFirstLaunch") {

}

Шаблон B

if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {

}

Какой путь самый лучший и есть ли разница между этими двумя способами?

Ответы [ 3 ]

0 голосов
/ 10 января 2019

Оба являются правильными способами использования UserDefaults, и это зависит от ваших требований, например, где вы можете использовать Pattern A и Pattern B, например, если вы хотите использовать UserDefaults.standard много мест в вашем ViewController, тогда вы можете объявить

let userDefaults = UserDefaults.standard

вне ваших методов и доступ к нему в любом месте вашего UIViewController класса, или вы можете объявить его как глобальный, и вы можете использовать его в любом месте вашего проекта.

Но если вы не пользуетесь им, вы можете просто использовать

if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {

}
0 голосов
/ 10 января 2019

На самом деле оба одинаковы.

UserDefaults.standard вернет одноэлементный экземпляр UserDefaults.

Вы можете выбрать любой метод для вашего удобства.

Если вам нужно часто использовать userDefaults, вы можете сократить UserDefaults.standard до переменной.

let userDefaults = UserDefaults.standard

if let defaults.object(forKey: "isFirstLaunch") {

}
0 голосов
/ 10 января 2019

Оба способа верны, и вы можете использовать их как угодно, за исключением того, что в шаблоне А будет определена одна дополнительная переменная.

SwiftyUserDefaults Современный Swift API для NSUserDefaults.

...