Xcode 9 الإكمال التلقائي لا يعمل 100 ٪-العمل جزئيا




autocomplete xcode9 (15)

يُظهر Xcode 9.0 (9A235) هذا الصباح مربع "إكمال تلقائي" جديد / غريب ليس على الإطلاق ما كان عليه من قبل. كيف يمكنني الحصول على مربع الإكمال التلقائي الكامل بحيث يبدو الإكمال التلقائي كيف يعمل عادةً؟


  1. تحقق مما إذا كنت قد حددت Suggest completions while typing في Xcode -> تفضيلات -> تحرير النص
  2. انتقل إلى المستخدم-> Library-> Developer-> Xcode-> DerivedData في Finder وحذف المجلد DerivedData

أخطاء البناء يمكن كسر ميزة الإكمال التلقائي في Xcode.


أشياء يجب تجربتها:

1

قم بتشغيل هذا الأمر في دليل المشروع إذا كنت تستخدم cocoapods:

rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;


2

تنظيف البيانات المخزنة مؤقتا

تنظيف المشروع -> كمد + التحول + K

قم بتنظيف المجلد Build -> Cmd + Shift + Option + K

إذا تخطيت الخطوة الأولى:
حذف البيانات المشتقة
Xcode Preferences -> Locations ->
رمز السهم يأخذك إلى DerrivedData -> حذف المجلد


3

تحقق من مصادر ترجمة مرحلة البناء الخاصة بك.

يجب أن .swift كل ملف. .swift و .swift في المشروع في هذه القائمة وإلا فلن يكون الإكمال التلقائي في هذه الملفات.


4

تحسين محرر الخاص بك:

استخدم fileprivate على كل خاصية ووظائف للفئة يمكنك تقليل نطاق عمل المجمعين لكل عنصر.

اكتب كود معياري / OOP بحيث يكون لديك رمز أقل للمترجم لقراءة.

تجنب استخدام Type Inferance عندما تكون النتيجة عبارة عن عملية حسابية معقدة ، وحاول تقسيم الحسابات المعقدة let this = smallerOperation عبارات عملية let this = smallerOperation


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


إليك القليل من الحل ولكن يعمل.

  1. تنظيف المشروع ... Command + Shift + K

  2. قم بتنظيف مجلد الإنشاء ... Command + Shift + Options (Alt) + K

  3. حذف البيانات المشتقة للمشروع ... يمكن القيام بذلك بمساعدة هذا الرابط:

    كيف يمكنني حذف البيانات المشتقة في Xcode 9؟

  4. أغلق XCode.

  5. أعد فتح XCode (دع الفهرسة كاملة) وبناء المشروع ... Command + B

بمجرد الانتهاء من البناء ، ستعود الاقتراحات. لقد حاولت ذلك مرتين.


استخدم Command + B
أو Command + R لإنشاء أو تشغيل المشروع
Xcode يفسد في بعض الأحيان ؛)


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

ومع ذلك ، لا تزال هناك إشارة إلى الملف (يظهر باللون الأحمر) في لوحة التجول في Project. يؤدي حذف الملف (غير الموجود حاليًا) في أداة تنقل المشروع إلى إعادة الإكمال التلقائي مرة أخرى بطريقة سحرية.

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

آمل أن يساعد هذا شخص ينقذ 30 دقيقة :)


بالنسبة لي كان يحدث في ملف الاختبار الخاص بي ، لأنه لم يكن جزءًا من هدف لسبب ما. إعداد العضوية المستهدفة حل المشكلة.


ضاعت للتو في محاولة لحل كابوس الإكمال التلقائي لـ Xcode (9.2). يبدو أن حذف البيانات المشتقة يعمل لفترة وجيزة ثم عادت الأمور. إعادة تمهيد الخ وغيرها من الفودو المقترحة فشلت في إحداث فرق.

تخليت وتنزيل نسخة تجريبية مدتها 30 يومًا من AppCode من Jet Brains. عملت الإكمال التلقائي بشكل جيد هناك ، وقد يكون ذلك من قبيل المصادفة ولكنه بدأ العمل مرة أخرى في مشروعي في Xcode. لا يمكن أن تضمن أنها ستواصل العمل ...


قد تبدو قضيتي محددة للغاية بحيث لا يمكن مساعدتها ، ولكنها قد تمنح شخصًا ما فكرة عن كيفية حل الإكمال التلقائي المعطّل. الكود 10.2.1.

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

switch mtype {
    case .indeterminate:
      newPosition.x = (frame.width - mainFigureText.frame.width) / 2
    case .right:
      newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) + (frame.width / 2)
    case .left:
      newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2)
 }

كنت أتطلع إلى تحريك عرض نص يسارًا أو يمينًا أو إلى الوسط اعتمادًا على مقدمات المستخدم. newPosition هو CGPoint الذي سيتم تحريك النص إليه. على أي حال ، قمت بتقسيم المعادلات إلى الأعلى وبدأت عملية الإكمال التلقائي المفاجئ بالعمل وذهبت المروحة صامتة! لقد تمكنت من إعادة إنشاء هذه المشكلة المحددة أكثر من مرة عن طريق إعادة كتابة الرمز أعلاه ثم استبداله بـ:

let halfFrameWidth: CGFloat = frame.width / 2
let middleLeft = (halfFrameWidth - mainFigureText.frame.width) / 2

switch doseType {
    case .right:
      newPosition.x = middleLeft + halfFrameWidth
    case .left:
      newPosition.x = middleLeft
    default:
      newPosition.x = (frame.width - mainFigureText.frame.width) / 2
 }

محاولة:

  1. انتقل إلى Xcode> تفضيلات> تحرير النص
  2. ضمن إكمال التعليمات البرمجية - قم بإلغاء تحديد "اقتراح الإكمال أثناء الكتابة"
  3. قم بإنهاء برنامج Xcode ثم أعد تشغيل Xcode.
  4. انتقل إلى Xcode> تفضيلات> تحرير النص مرة أخرى
  5. قم بإنهاء برنامج Xcode ثم أعد تشغيل Xcode.
  6. انتقل الآن إلى إكمال التعليمات البرمجية وحدد "اقتراح عمليات اكتمال أثناء الكتابة".
  7. حاول كتابة وظيفة المكتبة أو التعداد والتمتع به!

مشاكل في الغالب بسبب عدم وجود موقع لبعض الملفات في متصفح المشروع (أخطاء البناء)

  1. اضغط على الأمر + 1 لفتح جزء Project Navigator
  2. تحقق مما إذا كان هناك أي ملفات مفقودة

أو يمكنك:

  1. حذف DerivedData (command + shift + K)
  2. مجلد البناء النظيف (command + shift + option + K)
  3. اضغط على إنشاء مرة أخرى (command + B)
  4. من المفترض أن ترى خطأ في الإنشاء حيث تعذر على Xcode العثور على بعض الملفات التي تمنع أداة الإنشاء من معالجة الإكمال التلقائي.
  5. تصحيح وإصلاح أي ملفات مفقودة التي تراها.

أتمنى أن يساعدك هذا


يبدو أن الملف محدد في حالتي (Xcode 9.2) بالنسبة لي كان الإصلاح:

  1. حذف ملف المشكلة (إزالة المرجع)
  2. نظيفة وبناء
  3. إضافة ملف مرة أخرى إلى المشروع (لم أفحص أهداف الاختبار)
  4. بناء مرة أخرى

أخيرًا بعد 3 ساعات من تجربة كل شيء - يعمل الإكمال التلقائي كما يجب.



يرجى محاولة القيام بذلك:

حدد الملف >> تحقق من إضافة الملف إلى أهداف UITesting أو UnitTesting (File inspector -> Target Target العضوية) . إذا كان الأمر كذلك ، فالرجاء إلغاء تحديد هذين الخيارين والتأكد من تحديد هدف المشروع فقط. ثم قم بالبناء وجرب إذا كان الإكمال التلقائي يعمل بشكل جيد.

هذا عملت لي. آمل أن تساعد شخص ما.







xcode9