0Pricing
Swift Academy · درس

الناشرون والمشتركون

تعرّفوا إلى عقد Publisher/Subscriber، والمشتركين المضمّنين sink وassign.

الناشرون والمشتركون درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مرحبًا

Combine هو إطار العمل التفاعلي من Apple. ويضم في جوهره Publishers (تنتج القيم) وSubscribers (تستهلكها).

بروتوكول Publisher

يُصدر `Publisher` القيم بمرور الوقت، ثم يكتمل أو يفشل في النهاية: ```swift publisher .sink { print("Received: \($0)") } ``` يمثل النوع `Output` نوع القيمة، بينما يمثل `Failure` نوع الخطأ.

Subscriber: sink

```swift let nums = [1,2,3].publisher let cancel = nums.sink { print($0) } // 1, 2, 3 ```

Subscriber: assign

```swift class ViewModel { @Published var status = "" } let vm = ViewModel() statusPublisher .assign(to: &vm.$status) ```

AnyCancellable

تعيد كل عملية اشتراك كائنًا من النوع `AnyCancellable`. خزّنه للحفاظ على الاشتراك نشطًا: ```swift var cancellables = Set() pub.sink { print($0) }.store(in: &cancellables) ```

Just Publisher

```swift Just(42).sink { print($0) } // emits once then completes ```

ناشر الإشعارات

```swift NotificationCenter.default .publisher(for: UIApplication.didBecomeActiveNotification) .sink { _ in print("Active!") } .store(in: &cancellables) ```

ناشر المؤقت

```swift Timer.publish(every: 1, on: .main, in: .common) .autoconnect() .sink { date in print(date) } .store(in: &cancellables) ```

أحداث الاكتمال

```swift pub.sink( receiveCompletion: { completion in switch completion { case .finished: print("Done") case .failure(let e): print("Error: \(e)") } }, receiveValue: { print($0) } ) ```

الضغط العكسي

يدعم Combine الضغط العكسي، إذ يمكن للمشتركين طلب أعداد محددة من القيم. ويكون الطلب `.unlimited` هو الإعداد الافتراضي لـ `sink`.

تحقق سريع

ما النوع الذي يجب تخزينه للحفاظ على اشتراك Combine نشطًا؟

مراجعة

أهم النقاط: • يُصدر Publishers القيم بمرور الوقت، بينما يستقبلها Subscribers • يستقبل `sink` القيم والاكتمال، بينما يربط `assign` القيم بخاصية • خزّن `AnyCancellable` للحفاظ على الاشتراكات نشطة • الناشرات المضمّنة: `Just` و`Timer.publish` وNotificationCenter التالي: Operators.

الأسئلة الشائعة

هل درس «الناشرون والمشتركون» مجاني؟

نعم — نص درس «الناشرون والمشتركون» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «الناشرون والمشتركون»؟

تعرّفوا إلى عقد Publisher/Subscriber، والمشتركين المضمّنين sink وassign. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الناشرون والمشتركون»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الناشرون والمشتركون
  2. المعاملات: ‏map وfilter وcombineLatest
  3. ‏PassthroughSubject وCurrentValueSubject
  4. الشبكات باستخدام Combine وURLSession
← العودة إلى Swift Academy