Разница между CurrentValueSubject и @Published - PullRequest
1 голос
/ 03 ноября 2019

Так что я копаюсь в комбайне, и возникает вопрос.

Есть ли реальная разница между использованием CurrentValueSubject (и установкой его значения с помощью currentValueSubject.value) или использованием @Published var и доступомего издатель с $? Я имею в виду, я знаю, что каждый возвращает Subject вместо Publisher, но единственное реальное отличие, которое я могу найти, состоит в том, что CurrentValueSubject гораздо полезнее, потому что вы можете объявить его в протоколе.

Iдействительно не понимаю, как @Published может быть полезным, если мы можем просто использовать PassthroughSubject, я что-то здесь упускаю? Имейте в виду, это использует UIKit , он может быть использован для SwiftUI другими способами.

Спасибо.

1 Ответ

2 голосов
/ 05 ноября 2019

@ Опубликовано - это просто быстрый способ использовать CurrentValueSubject немного лучше. Когда я отлаживаю одно из моих приложений и смотрю на тип, возвращаемый $ paramName, это на самом деле просто CurrentValueSubject:

po self.$books
▿ Publisher
  ▿ subject : <CurrentValueSubject<Array<Book>, Never>: 0x6000034b8910>

Я предполагаю, что одним из преимуществ использования CurrentValueSubject вместо @Published может быть возможность использования вамитип ошибки?

Примечание. Несмотря на то, что сейчас CurrentValueSubject , я бы никогда не использовал это предположение.

...