1
Меня тошнит от повторения бесчисленных coolFeatureEnabled
струнных литералов при работе с UserDefaults
. Если есть хороший способ избавиться от них с помощью Swift 3?Как избавиться от строковых литералов `forKey` в` UserDefaults` с помощью Swift 3?
var coolFeatureEnabled: Bool {
get { return UserDefaults.standard.bool(forKey: "coolFeatureEnabled") }
set { UserDefaults.standard.set(newValue, forKey: "coolFeatureEnabled") }
}
@dan проверить это, вы будете удивлены ;-) –
@dan уверены, что вы используете Swift 3 ? параметр '# function' по умолчанию расширяет имя функции, которое является либо« coolFeatureEnabled », либо« anotherFeatureEnabled ». вы можете легко проверить его, вставив 'print (key);' to setter или getter –
@dan Это действительно сработает, как при использовании в качестве параметра по умолчанию '# function' [принимает имя объявления, в котором функция (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Expressions.html#//apple_ref/doc/uid/TP40014097-CH32-ID389) - в этом примере это займет имя "coolFeatureEnabled" или "anotherFeatureEnabled". – Hamish