見出し画像

Swiftでいこう! - "Combine"とは?

奥が深そうなCombineです。

紹介サイトを挙げてみました。

動画サイトががわかりやすいです。全5回あるようです。単純に行ってしまえば、2つの要素のやりとりです。

"Publisher""Subscriber"
"Publisher"は目的のデータを送るもの。
"Subscriber"は受けとる側

試していきます。まずpublisher、データを送るものを作っていくのですが、これは便利なものが用意されています

その"just"を使っていきます。"just"は"Subscriber"のメソッドを持っているので実装も簡単にできます。Playgroundでやっていきます。まず"import"

import Foundation
import Combine

そして"just"を使います。".sink"を使って受けても作ります。

"receiveCompletion:"のあとはクロージャ でswitch文で選択させます。そのあと、"receiveValue:"で受けた値を取り出します。

Just(10).sink(receiveCompletion: {completion in
   switch completion {
   case .failure(let error):
       print(error.localizedDescription)
   case .finished:
       print("finished")
   }
},receiveValue: {value in
   print("recive:\(value)")
}
             )
recive:10
finished

と出力されました。もっとシンプルに

Just(100).sink(receiveValue: {value in
   print("recieve:\(value)")
})
recieve:100

でも値が取れるようです。ただこれだけでは使うことができません。

".sink"の上にカーソルを載せて"option",クリックすると

画像1

が出てきます。"sink"の返り値が"AnyCancellable"となっているので、変数に代入してやることで値が使えます。(紹介動画でみるとわかりやすいです)

こうやってみると意外と簡単なようにも思えますが、使い所がわからないです。

この記事が気に入ったらサポートをしてみませんか?