การเติมข้อความอัตโนมัติ Xcode 7.3 นั้นน่าหงุดหงิดมาก


96

มีการเติมข้อความอัตโนมัติใหม่ใน Xcode อาจจะมีประโยชน์เพราะมันไม่ได้ตรวจสอบแค่การขึ้นต้นของชื่อเป็นต้น แต่ฉันพบว่าบ่อยครั้งที่มันไม่พบชื่อคลาสหรือชื่อ const เลย ฯลฯ ฉันต้องพิมพ์ชื่อทั้งหมดด้วยตัวเอง ฉันพบว่ามันทำให้ชีวิตของฉันยากขึ้นและใช้เวลาในการเขียนโค้ดนานขึ้น มีวิธีเปลี่ยนไปใช้วิธีเดิมที่เคยได้ผลหรือไม่?


ผู้ใช้งานที่จัดการกับ 7.3 ในฐานะเบต้าได้รับการร้องเรียนเกี่ยวกับเรื่องนี้มาหลายสัปดาห์แล้ว: stackoverflow.com/questions/35586056/…
แมตต์

คุณสามารถดาวน์โหลด xcode รุ่นเก่าด้วยตนเองได้ที่ developer.apple.com/downloadsเช่น xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
George

43
ฉันไม่อยากจะเชื่อเลยว่าพวกเขาเปิดตัวรุ่นใหญ่ที่มีบางสิ่งที่สำคัญพอ ๆ กับการเติมข้อความอัตโนมัติเสีย ราวกับว่าไม่มีใครที่ Apple ใช้ Xcode ในการพัฒนาจริงๆ
Soleil

3
นี่ส่งผลให้ประสิทธิภาพการทำงานของฉันแย่มากจนฉันเปลี่ยนกลับไปเป็น Xcode 7.2.1 ดังนั้นฉันจึงสามารถกลับสู่ความเร็วในการพัฒนาปกติได้อีกครั้ง ฉันรู้สึกรำคาญ Apple มากกว่าปกติด้วยสิ่งนี้ พวกเขาไม่เพียงบังคับให้ฉันไปที่ El Capitan เพื่อเรียกใช้ Xcode 7.3 แต่เมื่อฉันไปถึงที่นั่นฉันพบว่าดินแดนแห่งพันธสัญญานั้นห่างไกลจากความเป็นจริง พวกเขาทดสอบสิ่งนี้หรือไม่? โดยทั่วไปไม่เคารพนักพัฒนา 'ของพวกเขา' เช่นเคย
Quintin Willison

2
Xcode 7.3.1 เปิดตัวเมื่อวานนี้หลังจากการทดสอบของฉันข้อบกพร่องนี้ยังคงมีอยู่ ... แต่ Apple บอกว่าพวกเขาแก้ไขได้ใน 7.3.1
Vincent Sit

คำตอบ:


18

Xcode 7.3.1

  1. ใน Xcode> การตั้งค่า> การแก้ไขข้อความ

    ยกเลิกการเลือก Enable type-over completions

  2. รีสตาร์ท Xcode


14

ดูเหมือนว่าการล้างช่องทำเครื่องหมาย "เปิดใช้งานการเติมเต็มประเภทเกิน" ใน XCode -> การตั้งค่า -> การแก้ไขข้อความจะเป็นการหลอกลวง อย่างน้อยในกรณีของฉันการเติมข้อความอัตโนมัติกลับไปสู่วิธีการแบบเก่าดังนั้นจึงสามารถเติมชื่อคลาสที่ฉันต้องพิมพ์ด้วยตนเองก่อนหน้านั้นโดยอัตโนมัติ


พยายามแล้ว แต่ยังไม่สามารถกรอกชื่อคลาสได้อย่างถูกต้อง
Erik B

ฉันไม่เห็นความแตกต่าง ยังต้องตั้งชื่อที่กำหนดเองให้เสร็จ ... :(
matthewfx

ในการทำงานนี้คุณต้องเปิดการจัดทำดัชนี หากต้องการเปิดการจัดทำดัชนีคุณไม่สามารถทำได้จากภายใน Xcode คุณต้องดำเนินการบรรทัดต่อไปนี้ในเชลล์ จากนั้นรีสตาร์ท Xcode % ค่าเริ่มต้นลบ com.apple.dt.Xcode IDEIndexDisable ดูstackoverflow.com/questions/7328041/…
andrewz

5

นี่ไม่ใช่วิธีแก้ปัญหาที่เพียงพอ แต่มันทำให้ฉัน (แทบจะ) รักษาสติของฉันในช่วงสองสามวันที่ผ่านมา: หลังจากสร้างทุกครั้งคุณต้องทิ้งโฟลเดอร์ Derived Data ของคุณ Xcode > Preferences > Locations > Derived Dataคุณสามารถค้นหาในโฟลเดอร์นี้ เพียงแค่ทิ้งสิ่งทั้งหมดและจะเริ่มขั้นตอนการจัดทำดัชนีใหม่ที่ควรคืนค่าฟังก์ชันการเติมข้อความอัตโนมัติ น่าเสียดายที่ฉันพบว่าเมื่อฉันสร้างแล้วพฤติกรรมการเติมข้อความอัตโนมัติจะเปลี่ยนกลับสู่สถานะที่ไม่สมบูรณ์


4

เพียงแค่เปิดโฟลเดอร์ข้อมูลที่ได้รับ Xcode และลบโฟลเดอร์

/Users/yourUserName/Library/Developer/Xcode/DerivedData

จากนั้นรีสตาร์ท Xcode ตอนนี้การเติมข้อความอัตโนมัติทำงานได้อย่างมีเสน่ห์


สิ่งนี้ใช้ได้ผลสำหรับฉันฉันไม่รู้ว่าเหตุใดจึงถูกให้คะแนนในเชิงลบ
Mike M

1

ฉันรู้สึกว่า 'บางส่วน' ของการเติมข้อความอัตโนมัติล้มเหลวหลังจากนั้นไม่นาน ฉันใช้เพื่อรีสตาร์ท Mac เพื่อให้เครื่องกลับมาทำงานได้ แต่บางครั้งก็ล้มเหลวในไม่ช้าอีกครั้ง บางทีคำตอบของ @Alex Bykov รวมกับการรีสตาร์ทจะทำเคล็ดลับ

อย่างไรก็ตาม: การเติม Xcode โดยอัตโนมัติมักเป็นเรื่องไร้สาระ AppCode ใช้เพื่อให้ดีขึ้นมาก น่าเสียดายที่ยังไม่รวดเร็ว


1

ปิด Xcode เปิด Xcode ปล่อยให้ดัชนีมันใช้งานได้


1
น่าเสียดายที่เป็นทางเลือกเดียว
59

0

ไม่พบชื่อชั้นเรียน

ในการแก้ไขปัญหาคุณสามารถลองกด Command + Shift + Kและ Command + B หลาย ๆ ครั้งเพื่อทำงานชั่วคราว


1
ไม่Cmd + Shfit + K (สะอาด) Cmd + Shfit + เลือก + K (โฟลเดอร์รูปร่างสะอาด) ปิด Xcode ลบ~/Library/Developer/Xcode/DerivedData, รีบูต OS X และมันก็ยังคงไม่ได้ช่วย :-)
TaylanUB

1
เรามีโปรเจ็กต์ขนาดใหญ่ซึ่งใช้เวลารวบรวมตั้งแต่เริ่มต้น 20 นาทีดังนั้นการทำความสะอาดและสร้างใหม่จึงไม่ใช่ทางเลือกสำหรับเรา ...
longbow

0

Xcode 7.3.1

ฉันจะเล่าเหตุผลที่เป็นไปได้อีกอย่างหนึ่งซึ่งหลังจากนั้นสองสามวันเราก็พบ เรามีหลายรูปแบบและหนึ่งในนั้นส่วนหัวของการเชื่อมโยงกำลังนำเข้าไฟล์ที่ไม่มีอยู่แล้ว ดังนั้นมันจึงไม่พังในขณะที่รวบรวมและทำงาน (ส่วนหัวเป็นของโครงการอื่น) แต่มันทำให้การเติมข้อความอัตโนมัติแตก (ไม่พบคลาส Object-c ใด ๆ )

หวังว่ามันจะช่วยใครสักคน!


0

หลังจากลองวิธีต่างๆแล้ว:

  • ลบข้อมูลที่ได้รับ
  • การสลับโมดูลเปิดใช้งานในการตั้งค่าการสร้าง
  • สะอาดเต็มรูปแบบ
  • เปิดใหม่

สิ่งนี้ใช้ได้ผล:

  • ค้นหาโค้ดที่แสดงความคิดเห็น (/ * abc * /) หลัง @end ในไฟล์ของคุณและลบ

เครดิต Max_B: https://forums.developer.apple.com/thread/7439

ในกรณีของฉันโปรเจ็กต์อื่น ๆ กำลังกรอกข้อมูลอัตโนมัติอย่างถูกต้อง หากโครงการทั้งหมดของคุณไม่สามารถคาดเดารหัสได้อย่างถูกต้องอาจเป็นปัญหาอื่นและคำตอบอื่น ๆ อาจได้ผล


-1

ฉันพบปัญหานี้ขณะพยายามสร้างแอป OS X และฉันสามารถแก้ไขปัญหานี้ได้โดยตรวจสอบให้แน่ใจว่าดาวน์โหลดเอกสาร Xcode 7.3 และเอกสาร OS X 10.11.4 แล้ว การทำเช่นนี้คืนค่าฟังก์ชันการเติมข้อความอัตโนมัติของฉันอย่างสมบูรณ์ คำแนะนำแบบเต็มของฉันอยู่ด้านล่างและในคำตอบของคำถามที่คล้ายกัน: https://stackoverflow.com/a/39420664/3444925

ฉันมีปัญหานี้ด้วยตัวเองและหลังจากดูคำถามและคำตอบอื่น ๆ ที่คล้ายกันทั้งหมดเกี่ยวกับเรื่องนี้แล้วฉันก็ไม่พบวิธีแก้ปัญหา อย่างไรก็ตามในที่สุดฉันก็พบสิ่งที่เหมาะกับฉัน

Xcode -> Preferences -> Componentsไปที่ คุณอาจพบหน้าจอที่มีลักษณะดังต่อไปนี้:

ป้อนคำอธิบายภาพที่นี่

สิ่งนี้แสดงให้เห็นว่ายังไม่ได้ดาวน์โหลดเอกสารดังนั้นการพยายามจัดทำดัชนีใหม่หรือสร้างแอปพลิเคชันใหม่โดยไม่ดาวน์โหลดเอกสารประกอบจะทำให้คุณไม่สามารถใช้ฟังก์ชันการเติมข้อความอัตโนมัติได้

เมื่อฉันดาวน์โหลดเอกสาร Xcode 7.3 และเอกสารประกอบ OSX 10.11.4 นี่ก็เพียงพอแล้วสำหรับฉันที่จะได้รับฟังก์ชันการเติมข้อความอัตโนมัติกลับคืนมา (ฉันกำลังพยายามสร้างแอป OS X ดังนั้นอย่าลังเลที่จะดาวน์โหลดเอกสารให้มากที่สุดเท่าที่เกี่ยวข้องกับคุณ ).


ขอแนะนำให้ใช้ลิงก์ไปยังแหล่งข้อมูลภายนอก แต่โปรดเพิ่มบริบทรอบ ๆ ลิงก์เพื่อให้ผู้ใช้รายอื่นได้ทราบว่ามันคืออะไรและเหตุใดจึงมี อ้างอิงส่วนที่เกี่ยวข้องที่สุดของลิงก์ที่สำคัญเสมอในกรณีที่ไซต์เป้าหมายไม่สามารถเข้าถึงได้หรือออฟไลน์ถาวร
pableiros

ฉันเพิ่งเพิ่มคำตอบทั้งหมดของฉันที่นี่เป็นคำพูดบล็อกที่นี่ @pableiros
jkunzika

-1

ฉันไม่พบปัญหานี้จนกว่าจะสร้างไฟล์คลาสใหม่สองไฟล์ คลาสอื่น ๆ ทำงานได้ดี แต่การเติมข้อความอัตโนมัติจะใช้ไม่ได้กับไฟล์ใหม่ ...

การแก้ไข (สำหรับฉัน) - ฉันต้องเพิ่มไฟล์เหล่านั้นในเป้าหมายทั้งหมดของฉันรวมถึงเป้าหมายการทดสอบหน่วยแม้ว่าฉันจะยังไม่ได้ใช้งานก็ตาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.