سؤال

نحن سوف، NSURLProtocol هل عام جميل؟ إنه لتحديد جميع أنواع البروتوكولات ، أليس كذلك؟

فلماذا لا يوجد شيء مثل NSHTTPURLProtocol؟ بدلاً من ذلك ، هناك فئة غير رسمية على Nsurlrequest مع أشياء HTTP محددة. لماذا فعلوا ذلك بهذه الطريقة؟ لماذا لا يوجد بروتوكول HTTP مخصص بدلاً من ذلك؟

ما هي الفكرة وراء وضع كل هذه الأشياء NSURLRequest بدلا من في بروتوكول مخصص ل HTTP؟

من المؤكد أن HTTP غالبًا ما يتم استخدامه ، ولكن على أي حال: إنه أمر محير لفهم نظام تحميل عنوان URL بالكامل Cocoa/CocoaTouch. الآن هناك وثيقة. يقول أحدهم: "قم بإنشاء مخصص NSURLProtocol الفئة الفرعية لبروتوكولك الخاص ". يقول الآخر:" قم بإنشاء فئات غير رسمية مثل تلك الخاصة بأشياء HTTP على NSURLRequest".

آمل أن يتمكن شخص لديه تفاهم عميق من توضيح ذلك ؛)

هل كانت مفيدة؟

المحلول

الأسباب الجيدة العديدة:

  1. لم تتمكن من الوصول إلى NSURLProtocol-Subclass التي تعمل على تشغيل الاتصال ؛ فقط NSURLConnection اعترض نفسها. لذلك ، حتى لو تمت إضافة هذه الطرق إلى افتراضية NSHTTPURLProtocol الفصل ، كيف يمكنك الوصول إليهم؟

  2. NSURLConnection يستخدم كائن الطلب لتحديد البروتوكول الذي سيتعامل معه. لذلك ، يجب معرفة جميع خصائص الطلب قبل إنشاء كائن البروتوكول. على سبيل المثال ، يمكنك إنشاء بروتوكول مخصص يتجاوز تطبيق HTTP الافتراضي ، ولكن فقط لبعض المضيفين.

  3. توفير جميع الإعدادات المقدمة هو الكثير من الإبلاغ. ماذا لو تمكنت من الوصول إلى كائن البروتوكول وتعيين الخصائص عليه في منتصف الحمل؟ كيف يجب أن تتعامل معهم - تجاهل أو استثناء أو محاولة ضبط؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top