Closed vienvu89 closed 4 years ago
Hey @vienvu89, I understand that you resolved your issue?
Yes, I resolve. It is my fault. Thanks.
@vienvu89 Hey. I am facing this issue. How do I fix this?
@kaunteya I face it when I use it to observer update of key. So I fix it by:
example: I change let nameKey = DefaultsKey<String>.imageQuality
to let nameKey = DefaultsKey<String?>("imageQuality")
and Defaults.observe(key: nameKey) {
to Defaults.observe(nameKey) {
I have added a variable in DefaultsKeys
extension DefaultsKeys {
var showLineNumbers: DefaultsKey<Bool> { .init("showLineNumbers", defaultValue: false) }
}
And trying to add an observer in viewDidLoad
Defaults.observe(Defaults.showLineNumbers) { a in
}
I am getting the Ambiguous reference
error here
@sunshinejr
@kaunteya You can consider changing Defaults.showLineNumbers
to DefaultsKey<Bool?>("showLineNumbers")
. It's a workaround to make it work.
hmm this is strange, wonder why it happens? @vienvu89 do you mean that only optional types can be observed? Did you try using Defaults.observe(\.showLineNumbers)
?
@sunshinejr It works. Maybe it's better than my workaround.
Ah I see what you guys are trying to do. Defaults.showLineNumbers
is not a key, it's a value! The key is showLineNumbers
, which is in DefaultsKeys
. So You could also fix this by using Defaults.observe(DefaultsKeys.showLineNumbers)
, but yeah the keypath syntax should be a lot nicer to use: Defaults.observe(\.showLineNumbers)
.
Let me know if it helps @vienvu89 @kaunteya.
Hi guys, I just updated to 5.0.0 and I face this issues:
Ambiguous reference to member 'observe(_:options:handler:)'
I can't observer change of a key path.