Swift Academy · Pelajaran

Jaringan dengan Combine dan URLSession

Menggunakan URLSession.dataTaskPublisher dengan Combine untuk menangani respons jaringan.

Pelajaran 4 dari 412 langkah

Jaringan dengan Combine dan URLSession adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Selamat Datang

URLSession memiliki dukungan Combine bawaan melalui `dataTaskPublisher`. Jika digabungkan dengan `decode`, fitur ini membuat alur pemrosesan jaringan yang aman terhadap tipe hanya dengan beberapa baris.

dataTaskPublisher

```swift URLSession.shared .dataTaskPublisher(for: URL(string:"https://api.example.com/users")!) .sink(receiveCompletion: { print($0) }, receiveValue: { data, response in print(data.count) }) .store(in: &cancellables) ```

Mendekode JSON

```swift struct User: Decodable { var name: String; var id: Int } URLSession.shared .dataTaskPublisher(for: url) .map(\.data) .decode(type: [User].self, decoder: JSONDecoder()) .receive(on: DispatchQueue.main) .sink(receiveCompletion: { print($0) }, receiveValue: { users in self.users = users }) .store(in: &cancellables) ```

Penanganan Galat dengan catch

```swift .catch { error -> AnyPublisher<[User],Never> in print("Error: \(error)") return Just([]).eraseToAnyPublisher() } ```

retry

```swift .retry(3) // retry up to 3 times on failure ```

Memvalidasi Status HTTP

```swift .tryMap { data, response -> Data in guard let http = response as? HTTPURLResponse, (200...299).contains(http.statusCode) else { throw URLError(.badServerResponse) } return data } ```

Membangun Penerbit Generik

```swift func fetch(_ url: URL) -> AnyPublisher { URLSession.shared.dataTaskPublisher(for: url) .map(\.data) .decode(type: T.self, decoder: JSONDecoder()) .eraseToAnyPublisher() } ```

Pembatalan

```swift var searchCancellable: AnyCancellable? searchCancellable?.cancel() // cancel previous searchCancellable = fetch(url).sink { ... } ```

flatMap untuk Permintaan Berurutan

```swift fetch(userUrl) .flatMap { user in fetch(user.profileUrl) } .sink { profile in render(profile) } .store(in: &cancellables) ```

Menggabungkan Beberapa Permintaan

```swift Publishers.Zip(fetch(url1), fetch(url2)) .sink { a, b in combinedUI(a, b) } .store(in: &cancellables) ```

Pemeriksaan Singkat

Operator Combine mana yang mendekode keluaran penerbit menjadi tipe `Decodable`?

Rangkuman

Hal-hal penting: • `dataTaskPublisher(for:)`—pengambilan URL berbasis Combine • `.map(\.data)` → `.decode(type:decoder:)` untuk JSON • `.tryMap` memvalidasi status HTTP • `.retry(n)` untuk percobaan ulang otomatis • `.catch { }` menyediakan penerbit cadangan Kursus selesai! Berikutnya: Konkurensi Terstruktur Swift.
Gratis untuk memulai

Belajar Swift dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
122
Pelajaran
409

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Jaringan dengan Combine dan URLSession” gratis?

Ya — teks lengkap “Jaringan dengan Combine dan URLSession” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Jaringan dengan Combine dan URLSession”?

Menggunakan URLSession.dataTaskPublisher dengan Combine untuk menangani respons jaringan. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Jaringan dengan Combine dan URLSession” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penerbit dan Pelanggan
  2. Operator: map, filter, combineLatest
  3. PassthroughSubject dan CurrentValueSubject
  4. Jaringan dengan Combine dan URLSession
← Kembali ke Swift Academy