ios - بعد ترقية Xcode 11.2 من Xcode 11.1 ، تعطل التطبيق بسبب_UITextLayoutView




swift uitextview (4)

بعد ترقية Xcode 11.2 من تعطل تطبيق Xcode 11.1:

*** إنهاء التطبيق بسبب استثناء غير معلوم 'NSInvalidUnarchiveOperationException' ، السبب: 'تعذر إنشاء فئة باسم _UITextLayoutView لأنه لم يتم العثور على فئة باسم _UITextLayoutView ؛ يجب تعريف الفصل في التعليمات البرمجية المصدر أو ربطه من مكتبة (تأكد من أن الفصل جزء من الهدف الصحيح) "


إنه خطأ منذ الإصدار Xcode 11.2-Beta

المحلول

استرجع إلى إصدار إصدار Xcode السابق من:

https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_11.1/Xcode_11.1.xip

لاحظ أنه يجب عليك استخدام Safari لتنزيله وعليك أولاً تسجيل الدخول إلى مدخل مطور Apple .

يمكنك العثور على جميع إصدارات Xcode الأخرى ورابط الموارد الأخرى (بما في ذلك الإصدارات التجريبية والإصدارات التجريبية) هنا على https://developer.apple.com/download/more

الحل

هذا صعب للغاية ولكن العمل حل. استبدل جميع UITextView في لوحة العمل و Xib s بإصدار الكود الخالص .


إصلاح أسرع:

 ///Substitute class for _UITextLayoutView bug class FixedTextView: UITextView { required init?(coder: NSCoder) { if #available(iOS 13.2, *) { super.init(coder: coder) } else { let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 44*3)) super.init(frame: rect, textContainer: nil) } } } 

أضف هذا الرمز في مكان ما ، ثم FixedTextView كل مثيلات لوحة العمل بـ FixedTextView .

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


لا يحدث في الهواتف التي تعمل بنظام iOS 13.2. إنه ليس حلاً حقًا ولكنه حل سريع


UITextView "سريع" ، يمكنك إضافة UITextView مباشرةً من الرمز وليس عبر IB. على الأقل لأنها عملت لي. على الرغم من أنه من وجهة نظري ، من الأفضل التراجع إلى Xcode السابق / انتظر الجديد.





xcode11.2