Използване на просто разширение и вграден издател
В този урок ще научим как лесно да наблюдаваме UserDefaults
с помощта на Combine издател.
Без повече шум, нека да започнем.
Да започваме
Помислете за случай, в който искате да запазите силата на звука на музиката на играта в UserDefaults
. Вие също искате да наблюдавате промяната и да реагирате по съответния начин. Първата ни стъпка е да дефинираме следното разширение:
Както можем да видим, гетерът връща стойността Float
за ключа music_volume
и сетерът задава новата стойност за този ключ.
След това нека импортираме Combine и добавим свойството subscriptions
, за да съхраним нашия бъдещ абонамент:
Сега можем да добавим действителния абонамент в метода viewDidLoad()
:
Използвайки пътя на ключа UserDefaults
, наблюдаваме свойството musicVolume
. Вътре в оператора handleEvents(receiveOutput:)
ние просто отпечатваме съобщение, съдържащо последния том.
Сега нека тестваме абонамента. Добавете тези две планирани модификации към свойството musicVolume
:
Ние генерираме произволна стойност Float
и я присвояваме два пъти със закъснение. Сега, ако изградим и стартираме приложението, ще видим звука на музиката, отпечатан три пъти: веднъж за първоначалната стойност и последните два пъти за модификации (след известно забавяне):
Успешно наблюдавахме UserDefaults
.
Обобщавайки
Благодаря за четенето! Надявам се, че сте намерили това за полезно.