เช้านี้ Xcode 9.0 (9A235) แสดงกล่อง Auto Complete ใหม่ / แปลก ๆ ที่ไม่เหมือนที่เคยเป็น ฉันจะรับกล่องเติมข้อความอัตโนมัติแบบเต็มได้อย่างไรเพื่อให้การเติมข้อความอัตโนมัติมีลักษณะเป็นอย่างไร
เช้านี้ Xcode 9.0 (9A235) แสดงกล่อง Auto Complete ใหม่ / แปลก ๆ ที่ไม่เหมือนที่เคยเป็น ฉันจะรับกล่องเติมข้อความอัตโนมัติแบบเต็มได้อย่างไรเพื่อให้การเติมข้อความอัตโนมัติมีลักษณะเป็นอย่างไร
คำตอบ:
ลอง:
การลบโฟลเดอร์ DERIVED DATA ดูเหมือนจะช่วยแก้ปัญหาของฉันได้ ขอบคุณโพสต์นี้: swift println () ไม่แสดงตัวเลือกการเติมข้อความอัตโนมัติขณะเขียนโค้ด
สิ่งที่ต้องลอง:
รันคำสั่งนี้ในไดเร็กทอรีโปรเจ็กต์หากคุณใช้ cocoapods:
rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;
ล้างข้อมูลแคช
ทำความสะอาดโครงการ -> Cmd + Shift + K
ทำความสะอาดโฟลเดอร์ Build -> Cmd + Shift + Option + K
หากคุณข้ามขั้นตอนที่หนึ่ง:
ลบข้อมูลที่ได้รับ
Xcode Preferences
-> Locations
->
สัญลักษณ์ลูกศรจะนำคุณไปที่DerrivedData
-> ลบโฟลเดอร์
ตรวจสอบแหล่งคอมไพล์ของ Build Phase
ทุกคน.swift
และ.m
ไฟล์ในโครงการควรจะอยู่ในรายการนี้หรือมันจะไม่เติมในไฟล์เหล่านั้น
เพิ่มประสิทธิภาพบรรณาธิการของคุณ:
ใช้ fileprivate ในทุกคุณสมบัติและฟังก์ชันคลาสที่คุณสามารถทำได้เพื่อลดขอบเขตของงานคอมไพเลอร์ต่อไอเท็ม
เขียนโค้ด modular / OOP เพื่อให้คอมไพเลอร์อ่านโค้ดได้น้อยลง
หลีกเลี่ยงการใช้ Type Inferance เมื่อผลลัพธ์เป็นการคำนวณที่ซับซ้อนและพยายามแยกย่อยการคำนวณที่ซับซ้อนออกเป็นlet this = smallerOperation
งบ
Xcode เวอร์ชัน 11.0 (11A420a)
ฉันได้ลองวิธีแก้ปัญหาจากLal Krishnaสำหรับ Xcode V11.0 แล้ว ใช้งานได้สองสามครั้ง แต่ต่อมาฉันไม่ได้รับผล
ฉันพบทางออกหนึ่ง คุณต้องลบสองไฟล์:
วิธีแก้ปัญหานั้นช่วยฉันได้แล้ว อาจมีประโยชน์สำหรับคนอื่น ๆ 😉
สิ่งนี้สามารถเกิดขึ้นได้เมื่อไฟล์ไม่ได้เป็นสมาชิกของ Target เปิดไฟล์ที่การเติมข้อความอัตโนมัติไม่ทำงานและแสดงแท็บ "ยูทิลิตี้" ที่ด้านบนขวาของ Xcode (สีน้ำเงินในภาพหน้าจอด้านล่าง)
ตรวจสอบให้แน่ใจว่าได้เลือกเป้าหมายของคุณ (โดยทั่วไปคือชื่อแอปของคุณ) การเติมข้อความอัตโนมัติควรทำงานได้เกือบจะในทันทีโดยไม่ต้องรีสตาร์ท Xcode ทำความสะอาดหรือลบข้อมูลที่ได้รับ
หากได้รับการตรวจสอบแล้วอย่าลืมยกเลิกการเลือกและตรวจสอบใหม่อีกครั้ง สำหรับฉันมันเป็นเคล็ดลับ
ฉันใช้Xcode 10.2และมีปัญหาเดียวกัน
คำตอบนี้จากAxelช่วยฉันแก้ไข
อย่างไรก็ตามฉันจะอธิบายเพิ่มเติมอีกเล็กน้อย:
YourProject.xcodeproj
โดยคลิกด้วยคลิกเมาส์ขวาและเปิดShow Package Contents
xcuserdata
และลบไฟล์youruser.xcuserdatad
หากคุณมีxcworkspace
(หากคุณมีพ็อดติดตั้งอยู่แล้ว) ให้ทำขั้นตอนที่ 3 และ 4 หากไม่มีให้ข้ามขั้นตอนที่ 3 และ 4:
YourProject.xcworkspace
โดยคลิกด้วยคลิกเมาส์ขวาและเปิดShow Package Contents
ไปที่xcuserdata
และลบไฟล์youruser.xcuserdatad
ออกจาก Xcode
rm -rf ~ / Library / Developer / Xcode / DerivedData
สิ่งนี้อาจเกิดขึ้นได้หากคุณตั้งชื่อไฟล์ซ้ำซ้อน ตัวอย่างเช่น,
Data.swift
Data.swift
การลบไฟล์ออกจากเป้าหมายการทดสอบช่วยแก้ปัญหาของฉัน
โปรดลองทำสิ่งนี้:
เลือกไฟล์ >> ตรวจสอบว่าไฟล์จะถูกเพิ่ม UITesting หรือ unittesting เป้าหมาย(สารวัตร File -> สมาชิกเป้าหมาย) ในกรณีนี้โปรดยกเลิกการเลือกสองรายการนี้และตรวจสอบว่าได้เลือกเฉพาะเป้าหมายโครงการเท่านั้น จากนั้นสร้างและลองว่าการเติมข้อความอัตโนมัติทำงานได้ดีหรือไม่
สิ่งนี้ได้ผลสำหรับฉัน หวังว่ามันจะช่วยใครสักคน
นี่เป็นวิธีแก้ปัญหาเล็กน้อย แต่ใช้งานได้
ทำความสะอาดโครงการ ... Command + Shift + K
ทำความสะอาดโฟลเดอร์ build ... Command + Shift + Options (Alt) + K
ลบข้อมูลที่ได้รับสำหรับโครงการ ... ซึ่งสามารถทำได้ด้วยความช่วยเหลือของลิงค์นี้:
ปิด XCode
เปิด XCode อีกครั้ง (ปล่อยให้การจัดทำดัชนีเสร็จสมบูรณ์) และสร้างโครงการ ... Command + B
เมื่อดำเนินการสร้างเสร็จแล้วข้อเสนอแนะจะกลับมา ฉันได้ลองสองครั้ง
ปรับปรุง:
บางครั้งปัญหาอาจง่ายเหมือนชื่อไฟล์ซ้ำ ตรวจสอบอย่างรอบคอบว่าชื่อไฟล์ใหม่ที่คุณเพิ่มเข้ามาขัดแย้งกับไฟล์รุ่นเก่าหรือไม่
ใน Xcode 11.4 แม้ว่าคุณจะย้ายไฟล์ที่มีอยู่ไปยังกลุ่มอื่นคำแนะนำจะหายไป สามารถรักษาให้หายได้ง่ายๆโดยการรีสตาร์ท Xcode
หลังจากค้นหามานานในที่สุดฉันก็แก้ไขปัญหาให้ฉันได้ ใน Xcode> การตั้งค่า> การแก้ไขข้อความใน "การเติมโค้ด" ฉันได้เลือก "ใช้แป้น Escape เพื่อแสดงคำแนะนำการกรอกข้อมูล" ด้วยเหตุผลบางประการ ทันทีที่ฉันยกเลิกการเลือกช่องนี้การเติมอัตโนมัติจะทำงานได้อย่างมีเสน่ห์โดยไม่จำเป็นต้องรีสตาร์ท Xcode! (Xcode 10)
ฉันได้เพิ่มสิ่งที่เกิดขึ้นในโครงการของฉันไว้ที่นี่เผื่อว่าจะสามารถช่วยคนอื่นได้ ... ฉันมี 2 ไฟล์ที่มีชื่อเดียวกันและฉันไม่รู้
เพิ่งเสียเวลาไปหนึ่งวันในการพยายามแก้ฝันร้ายของการเติมข้อความอัตโนมัติของ Xcode (9.2) การลบข้อมูลที่ได้รับดูเหมือนจะใช้งานได้ในช่วงสั้น ๆ จากนั้นสิ่งต่างๆจะถูกเปลี่ยน รีบูต ฯลฯ และวูดูที่แนะนำอื่น ๆ ไม่สามารถสร้างความแตกต่างได้
ฉันยอมแพ้และดาวน์โหลด AppCode รุ่นทดลอง 30 วันจาก Jet Brains การเติมข้อความอัตโนมัติทำงานได้ดีที่นั่นและอาจเป็นเรื่องบังเอิญ แต่จากนั้นก็เริ่มทำงานอีกครั้งในโครงการของฉันใน Xcode ไม่สามารถรับประกันได้ว่าจะทำงานต่อไป ...
ดูเหมือนว่าจะเป็นไฟล์เฉพาะในกรณีของฉัน (Xcode 9.2) สำหรับฉันการแก้ไขคือ:
ในที่สุดหลังจากลองทุกอย่างครบ 3 ชั่วโมง - การเติมข้อความอัตโนมัติจะทำงานตามที่ควรจะเป็น
ปัญหาส่วนใหญ่เนื่องจากไม่มีตำแหน่งของไฟล์บางไฟล์ในตัวนำทางโครงการ (สร้างข้อผิดพลาด)
Project Navigator
บานหน้าต่างหรือคุณสามารถ:
หวังว่านี่จะช่วยได้
Xcode 11.3, macOS catalina
การแยกวิเคราะห์กระบวนการบรรลุ cpu 100% ดังนั้นการฆ่ามันช่วยฉันด้วย
ย้อนกลับ Slash ในชื่อโฟลเดอร์ที่ทำลายคุณลักษณะการเติมข้อความอัตโนมัติหากเป็นกรณีนี้ให้ลบและสร้างอีกครั้ง
สำหรับฉันมันเกิดขึ้นในไฟล์ทดสอบของฉันเพราะมันไม่ได้เป็นส่วนหนึ่งของเป้าหมายด้วยเหตุผลบางประการ การตั้งค่าการเป็นสมาชิกเป้าหมายช่วยแก้ปัญหาได้
สำหรับฉันปัญหาเกิดขึ้นเมื่อฉันทิ้งการเปลี่ยนแปลงทั้งหมดของไฟล์เดียว (ภายใต้ Source Control> Commit) ซึ่งจะลบไฟล์ได้อย่างมีประสิทธิภาพ นี่คือสิ่งที่ฉันต้องการและฉันคิดว่าไฟล์และการอ้างอิงทั้งหมดจะถูกลบออกด้วย
อย่างไรก็ตามยังคงมีการอ้างอิงถึงไฟล์ (แสดงเป็นสีแดง) ในตัวนำทางโครงการ การลบไฟล์ (ตอนนี้ไม่มีอยู่แล้ว) ในเนวิเกเตอร์โปรเจ็กต์จะนำการเติมอัตโนมัติกลับมาอย่างน่าอัศจรรย์
ไม่มีการทำความสะอาดการลบข้อมูลที่ได้รับ ฯลฯ ช่วย ฉันเพิ่งรู้ว่าไฟล์ที่ถูกลบยังคงแสดงอยู่เมื่อฉันพยายามสร้างโครงการของฉันซึ่งแน่นอนว่าล้มเหลวเพราะไม่พบไฟล์นั้น
หวังว่านี่จะช่วยให้ใครบางคนประหยัดเวลา 30 นาที :)
ใช้Command + B
หรือCommand + R
เพื่อสร้างหรือเรียกใช้โครงการ
Xcode บางครั้งก็ยุ่ง;)
Suggest completions while typing
ใน Xcode -> Preferences -> Text Editing หรือไม่กรณีของฉันอาจดูเฉพาะเจาะจงเกินไปที่จะช่วยได้ แต่อาจทำให้ใครบางคนทราบถึงวิธีแก้ปัญหาการเติมข้อความอัตโนมัติที่เสีย 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
}
ฉันต้องการเพิ่มอีกหนึ่งข้อในการแก้ปัญหาเพราะเป็นหนึ่งเดียวที่ได้ผลสำหรับฉันและไม่มีที่ไหนที่จะพบได้ที่นี่
โดยปกติ Xcode จะมาพร้อมกับการกำหนดค่าการสร้างเริ่มต้นสองรายการสำหรับทุกโครงการ Release
& Debug
. Testing
ฉันมีหนึ่งพิเศษสำหรับการทดสอบหน่วยของฉันเรียกว่า ใน Xcode 10.1, 10.2, 10.3 และ 11 เบต้าสร้างระบบใหม่ดูเหมือนจะไม่ชอบมันและจะมีเพียงอัตโนมัติสมบูรณ์ถ้าคุณทั้งการใช้งานหรือRelease
Debug
การกำหนดค่าบิลด์ที่กำหนดเองใด ๆ จะทำลายการเติมข้อความอัตโนมัติในโปรเจ็กต์แบบผสม (รวดเร็ว + objc) ด้วยการทดสอบหน่วย
ข้อผิดพลาดในการสร้างสามารถทำลายคุณลักษณะการเติมข้อความอัตโนมัติใน Xcode
ฉันมีปัญหากับการเติมข้อความอัตโนมัติไม่ได้ 100% ไม่มีการเขียนใด ๆ ที่ช่วยได้ สิ่งหนึ่งที่ฉันสังเกตเห็น - มันเสียทันทีหลังจากเพิ่มเอนทิตีบางอย่างลงในไฟล์. xcdatamodel ซึ่งมีนิยามคลาส codegen ตามค่าเริ่มต้น
ดังนั้นฉันจึงไม่แปลกใจเมื่อใช้ codegen แบบเก่าไม่มี (และสร้างคลาสแน่นอน) แก้ไขปัญหาได้ทันทีแม้ว่าจะไม่ต้องรีสตาร์ท xcode ก็ตาม
ด้วย Xcode 11.1 การดำเนินการClean Build Folder
หรือลบข้อมูลที่ได้มาเพียงอย่างเดียวนั้นไม่เพียงพอที่จะแก้ไขการเติมข้อความอัตโนมัติ
หลังจากรีสตาร์ท Mac ของฉันเท่านั้นทุกอย่างก็กลับมาเป็นปกติ
หากคุณมีปัญหาเกี่ยวกับการทำให้สมบูรณ์แบบแปลก ๆ / การทำให้สมบูรณ์อัตโนมัติ / Intellisense (ไม่แสดงสิ่งที่เป็นค่าเริ่มต้นเช่นผู้ร่วมประชุมและวิธีโปรโตคอลแหล่งข้อมูล) เพียงแค่เปลี่ยนเป้าหมายของคุณ (เช่นจากเครื่องจำลอง iPhone 8 เป็นอุปกรณ์จริง) สร้างโครงการและเปลี่ยนกลับไปที่เป้าหมายเดิมของคุณ .
คล้ายกับปัญหาที่ Interface Builder (สตอรี่บอร์ด) ไม่แสดงอะไรเลยมี แต่ "ไม่ได้เลือก" เมื่อใดก็ตามที่คุณเลือกส่วนใดส่วนหนึ่งของมุมมอง เพียงแค่เปลี่ยนไปใช้ Xib / Storyboard อื่น ๆ (หรือแม้แต่สร้างใหม่) ตรวจสอบว่าใช้งานได้หรือไม่และเปลี่ยนกลับ
วิธีแก้ปัญหาเหล่านี้ใช้ได้ผลกับฉันในทั้งสองกรณี (มีปัญหาทั้งสองอย่างในหนึ่งวันกับโครงการเดียวใน Xcode 10.2.1) จากสิ่งที่ฉันได้เห็นในฟอรัมอินเทอร์เน็ตดูเหมือนว่าข้อบกพร่องเหล่านี้จะไม่เคยได้รับการแก้ไขตั้งแต่ Xcode 6.x หรือมากกว่านั้น
ไชโย!
ในกรณีของฉัน (Xcode 11.1) มันเกิดขึ้นเมื่อฉันหยุดการทำดัชนีอัตโนมัติของ Xcodeด้วยคำสั่งdefaults write com.apple.dt.Xcode IDEIndexDisable -bool true
นี้
ดังนั้นผมจึง Rolle defaults write com.apple.dt.Xcode IDEIndexDisable -bool false
สำรองด้วย จากนั้นรีสตาร์ท macOS และเรียกใช้ Xcode อีกครั้ง
มีปัญหาเดียวกันกับ Xcode 11.3 ไม่มีอะไรข้างต้นไม่ช่วยปรากฎว่าฉันมีข้อผิดพลาดในการสร้าง เพียงแก้ไขข้อผิดพลาดของการสร้างและการเติมข้อความอัตโนมัติจะทำงานอีกครั้ง