سؤال

حتى iOS7، لم تكن Apple تدعم الارتباط الديناميكي بسبب مخاوف أمنية.تعتمد إعادة استخدام التعليمات البرمجية بين المطورين عادةً على المكتبات الثابتة، والتي تم إنشاؤها كجزء من الملف القابل للتنفيذ للتطبيق.

يبدو أن تقديم الملحقات في iOS8 قد غيّر هذا الأمر بعض الشيء، لأن الملحقات عبارة عن ملفات تنفيذية منفصلة.تتم مشاركة التعليمات البرمجية بين الامتداد والتطبيق الذي يحتوي عليه عبر إطار عمل.تقول Apple هذا في ملاحظات الإصدار الخاصة بها:

إطارات لنظام iOS.يمكن لمطوري iOS الآن إنشاء متحرك إطار أعمال.الأطر هي مجموعة من التعليمات البرمجية والموارد لتغليف الوظائف ذات قيمة عبر مشاريع متعددة.تعمل الأطر بشكل مثالي مع الامتدادات ، ومشاركة المنطق الذي يمكن استخدامه من قبل كل من التطبيق الرئيسي ، والملحقات المجمعة.

التركيز هو الألغام.

مصدر: https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14

علاوة على ذلك، في دليل تطوير الامتداد، يشرحون أنه يمكنك مشاركة التعليمات البرمجية بين الامتداد والتطبيق الذي يحتوي عليه عبر "إطار عمل مضمن".

مصدر: https://developer.apple.com/library/content/documentation/general/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

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

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

المحلول

لا تشير الأطر "المضمنة" و"الديناميكية" إلى نفس الجانب من الأطر.إنهم ليسوا عكس بعضهم البعض.أولاً، دعونا نحدد ما هو الإطار:في لغة Apple، يشير الإطار إلى بعض التعليمات البرمجية المجمعة + الرؤوس العامة للتعليمات البرمجية المذكورة.

  • الآن أ متحرك إطار العمل هو إطار تم إنشاء كوده كمكتبة ديناميكية.إنه عكس إطار العمل "الثابت"، حيث سيتم إنشاء الكود كمكتبة ثابتة.في حال كنت تتساءل، ويكيبيديا لديها شرح جميل جدا ما الفرق بين المكتبة الثابتة والديناميكية.

  • وأخيرا، أ مغروس إطار العمل هو إطار عمل يتم تجميعه داخل التطبيق، بدلاً من تثبيته على مستوى النظام، في "/System/Library/Frameworks" على سبيل المثال.

نصائح أخرى

إطار العمل المضمن هو ببساطة إطار عمل مضمن في حزمة التطبيق، وليس إطار عمل عالمي مثبت في دليل النظام.

الأطر الديناميكية لا يعني إطار مرتبط ديناميكيا.لا تزال التطبيقات تعمل فقط في بيئة وضع الحماية.ليس الأمر وكأن أطر العمل المخصصة الخاصة بك سيتم تثبيتها مع نظام التشغيل iOS.سيتم نسخ كل تطبيق من تطبيقاتك التي تستخدم إطار العمل المشترك الذي قمت بتطويره داخل حزمة كل تطبيق.

يمكنك أن ترى هذا بنفسك.انتقل إلى دليل البيانات المشتقة الخاص بـ Xcode وداخل بيانات التطبيق، ستجد جميع الأطر المضمنة منسوخة.

الشيء الجديد الوحيد في إنشاء إطارات العمل مع نظام التشغيل iOS 8 مقارنة بالمكتبات الثابتة هو أن ملفات الرأس العامة والأصول يتم تجميعها داخل إطار العمل.إذا كنت تفعل هذا النوع من الأشياء مع الإصدارات السابقة من Xcode، فسوف تتذكر الألم الناتج عن توفير الرؤوس العامة ثم إضافة مسار البحث ضمن إعدادات Xcode وللأصول التي كان علينا تمريرها في حزمة منفصلة.

هذا الجانب السلبي الوحيد لاستخدام أطر العمل التي أراها هو أننا الآن لا نستطيع استخدامها ببساطة يبو لإنشاء مكتبة ثابتة لجميع أنواع البنى.

تستخدم IMO Apple كلمة "ديناميكية" لاقتراح كلمة "مستقلة".

شاهد مؤتمر WWDC2014 - بناء الأطر الحديثة لمزيد من التفاصيل.

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