ios - for - xcode 7.3 1




Xcode 6 Bug: فئة غير معروفة في ملف واجهة منشئ (20)

قمت بالترقية إلى Xcode 6 beta 4 والآن يتعطل My apply مع الرسالة

فئة غير معروفة X في ملف واجهة منشئ.

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

أنا كل شيء إيجابي يرتبط بشكل صحيح. قد يكون الخيار الآخر الوحيد هو حذف ملف لوحة العمل بأكمله والبدء من الصفر لأنه قد يكون تالفًا بطريقة ما.

تحرير: وأود أيضا أن أضيف أنني حاولت تنظيف ، وإعادة محاكي ، العبث مع مراحل البناء إلخ. لا شيء من هذا يعمل.

https://code.i-harness.com


أحيانًا يفقد جهاز التحكم الذي تقدمه العضوية المستهدفة من التطبيق الحالي. في هذه الحالة ، لن يؤدي الضغط على Enter في حقل "الوحدة النمطية" إلى فعل أي شيء. انتقل إلى وحدة التحكم وتأكد من تعيين العضوية المستهدفة على التطبيق الحالي.


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

باستخدام XCode 4 ، في Project Navigator ، حدد الملف .m الذي يحتوي على الفئة التي تشكو منها

انتقل إلى View-> Utilities-> Show File Inspector (سيظهر هذا File Inspector إلى اليمين ، مع ذلك .m-info)

افتح المقطع "العضوية الهدف" وتأكد من تحديد الهدف الخاص بك لهذا الملف .m

عندما أضفت ملف .m إلى مشروعي ، لم يضفه إلى الهدف الافتراضي لسبب ما وتسبب في حصول الخطأ الذي ذكرته.


أنا غوغلد في كل مكان لهذا. لا يعمل أي من الإجابات بالنسبة لي حتى التقيت 1 المتأنق الذي طلب مني نقل مجلد المشروع إلى سطح المكتب. انها مجرد عمل تلقائيا. على ما يبدو إذا كان لديك مجلد المشروع إلى عميق في العديد من المجلدات ، وكسر XCODE في الواقع.


إجابتي: تعيين وحدة نمطية مخصصة مساوية لاسم Pod المخصص (في المثال الخاص بي - اسم الفئة المخصص) كما هو موضح في لقطة الشاشة المرفقة

هذا الحل لحالة محددة : لفئات العرض المخصصة من إطار Pod (أو Carthage ).

البنية التحتية: XCode8 ، Swift3


الحل الخاص بي (Xcode 8.1 Swift 3.0):

غير معروف فئة xxx في ملف واجهة منشئ.

افتح StoryBoard كقانون مصدر وابحث عن xxx . إزالة السمة التي تحتوي على قيمة xxx . بناء وتشغيل.


تحقق مما إذا كان صفك يتضمن العضوية المستهدفة الصحيحة.


في بعض الأحيان غاب Xcode customModule="AppName" customModuleProvider="target"

لإصلاحه ، افتح لوحة العمل كمصدر شفرة واستبدل هذا السطر:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">

الى هذا:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
 customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

في حالتي ، قمت بإضافة إشارة -ObjC إلى Other Linker Flags في إعدادات المشروع لجعلها تعمل. كما حاولت مع -all_load العلم وعملت جيدا أيضا.


قمت بحل هذه المسألة أثناء كتابتي للسؤال. ظننت أنني سأجيب على سؤالي وأتركه هنا لأي شخص آخر قد يواجه هذه المشكلة عند استخدام Xcode 6 beta 4.

لحل هذه المشكلة ، تحتاج إلى تحديد كل من كائنات الفئة المخصصة في Storyboard (يتضمن هذا أي طرق عرض مخصصة أو حتى وحدات تحكم العرض المخصصة نفسها).

ثم مع هذه الكائنات المحددة ، افتح مفتش الهوية وتحت "الفئة المخصصة" سترى خيار الوحدة النمطية. انقر داخل مربع نص الوحدة النمطية واضغط على Enter.

هذا هو! يجب أن تكون الوحدة النمطية الحالية لكل الكائنات المخصصة الخاصة بي تم تعيينها بطريقة غير صحيحة داخليًا بطريقة ما في Xcode 6 beta 4. ولكن لم يكن هناك أي مؤشر مرئي على ذلك في المفتش.

لاحظ أنه إذا كان الضغط على زر الإدخال داخل مربع نص الوحدة النمطية لا يعمل ، فجرّب تحديد السهم إلى اليمين وحدد الوحدة النمطية الحالية يدويًا ، ثم امسح مربع النص واضغط على Enter. يمكنك أيضًا محاولة الضغط على إدخال داخل مربع نص الفصل الدراسي (على الرغم من أن هذا عادة ما يكون لحل مشكلة مختلفة).

هذه صورة لجعل الأمور أكثر وضوحًا:


كان الحل الخاص بي لإزالةobjc من تعريف فئة مخصص.


كان عندي هذه المشكلة بعد إعادة تسمية فئة سريعة. حلها باستخدام التوجيهobjc:

@objc(ForumTopicListViewController) class ForumTopicListViewController

كان لي نفس المشكلة مع الإصدار Xcode 6.1 (6A1052d). أعتقد أن المشكلة ستظهر إذا أعدت تسمية تطبيقك / برنامج Xcode.

كان الحل الخاص بي لإضافة اسم الوحدة النمطية في أداة إنشاء الواجهة يدويًا.


لقد قمت بحل هذه المشكلة عن طريق كتابة اسم الوحدة النمطية (للأسف ، فإن قائمة الإفلات لن تظهر أي شيء ...) في الفئة المخصصة لمفتش الهوية لجميع وحدات التحكم في العرض وطرق العرض.

قد تحتاج أيضًا إلى الإشارة إلى الموفر المستهدف. لتحقيق هذا الهدف ، يمكنك فتح لوحة العمل في وضع sourcecode وإضافة سمة "customModuleProvider" في كل من قوسين ViewController وعرض الزاوية.


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


لقد واجهت هذه المشكلة في Xcode 6.1 عندما أزلت Main.storyboard ، وملف ViewController وفئات ViewController الافتراضية من مشروعي.

Info.plist إدخالات Launch Screen File Main Interface Info.plist من Info.plist


ما قالهgfrs صحيح ، تحتاج إلى ضبط الوحدة. ومع ذلك ، واجهت مشكلة مرة واحدة ولم يتم إدراج صفي في القائمة المنسدلة للصف. في النهاية أزلت الملف السريع ، وأعدت تشغيل Xcode وأعدت إنشاء الملف. أخيراً تم إدراج الفصل ويمكن استخدامه في Storyboard.

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


هذا العمل بالنسبة لي ..

تحقق من المصدر المترجم ، سواء تمت إضافة هذا الملف (على سبيل المثال ؛ ViewController.m) أم لا ، في حالتي لم يتم إضافة ملف ViewController لذلك كان يعطيني الخطأ ..


هذه الخطوات تعمل بالنسبة لي.

1) مسح البيانات المشتقة.
2) إزالة ملفات .h و. m
3) إنشاء ملفات .h و .m مرة أخرى


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


يمكن أن يحدث هذا في أي Xcode فوق 6.0. حدث لي بعد إعادة تسمية بعض فصول ViewController في مشروع سويفت (ولكن أعتقد أنه سيحدث مع Obj-C أيضا). كل ما عليك فعله هو فتح أداة إنشاء الواجهة ، انتقل إلى Identity Inspector of ViewController الذي تمت إعادة تسمية الصف الخاص به ، وحدد الفئة ثم اضغط على Enter. سيؤدي ذلك إلى إعادة تعيين الفئة التي تمت إعادة تسميتها إلى ViewController المحدد وإعادة تعيين قيمة الوحدة النمطية التي يتم فقدها بعد إعادة تسمية الفئة.

تحديث لـ Xcode 8.1 (ربما 8.0 أيضًا):

Xcode 8.1 فقط تعطل. ببساطة وتعطل فقط ولا تطبع أي شيء. كنت أطارد هذا الانهيار الوهمي لمدة ساعة فقط لأكتشف أن هذا هو الشيء نفسه - فئة غير مخصصة في البكالوريا الدولية. إذا كنت تحصل على بعض الحوادث الوهمية ، فقم بالتحقق مرة أخرى من IB للدروس غير المخصصة أولاً.







uistoryboard