Xcode 9 Autocomplete không hoạt động 100% - Hoạt động một phần


121

Sáng nay, Xcode 9.0 (9A235) hiển thị một hộp Auto Complete mới / lạ, hoàn toàn không giống như trước đây. Làm cách nào để có được hộp tự động hoàn thành đầy đủ để tính năng tự động hoàn thành trông giống như cách nó thường làm?

nhập mô tả hình ảnh ở đây


1
Việc xóa Thư mục DỮ LIỆU BỊ XÓA đã giải quyết được điều đó cho tôi. Cảm ơn một bài viết khác. Cảm ơn bài đăng này: stackoverflow.com/questions/28429630/…
Ernie

Có thể là do việc lập chỉ mục vẫn chưa được hoàn thành.
ozgur

1
Thử mọi giải pháp đề xuất và không có gì giúp với một trong những dự án của tôi 🙁
Alexander Vasenin

3
11.3 là một thảm họa liên quan đến vấn đề này. Thường chỉ cần khởi động lại Xcode sẽ giúp: /
Fattie

Câu trả lời:


233

Thử:

  1. Đi đến Xcode> Tùy chọn> Chỉnh sửa Văn bản
  2. Trong phần Hoàn thành mã - Bỏ chọn 'Đề xuất hoàn thành khi nhập'
  3. Thoát khỏi Xcode và sau đó khởi chạy lại Xcode.
  4. Đi tới Xcode> Tùy chọn> Chỉnh sửa Văn bản một lần nữa
  5. Thoát khỏi Xcode và sau đó khởi chạy lại Xcode.
  6. Bây giờ đi đến Mã hoàn thành và kiểm tra 'Đề nghị hoàn trong khi gõ.
  7. Hãy thử gõ hàm thư viện hoặc enum và tận hưởng!

2
giải pháp tuyệt vời. thật ki cục. Tôi tự hỏi làm thế nào bạn tái tạo điều này.
Kunal Gupta,

1
Câu trả lời triệu đô. Điều này thậm chí đã sửa lỗi "Chuyển sang định nghĩa".
OutOnAWeekend

Vẫn cần thiết trong Xcode 11.2, cảm ơn bạn cho cuộc sống Hack lạ này :-)
Rocket Vườn

Đây là một lỗi trong Xcode vì các bản cập nhật luôn mới tạo ra các vấn đề mới, giải pháp làm việc cho tôi là: 1- Khá Xcode. 2- đợi vài giây. 3- Mở Xcode nhưng không chạm vào bất cứ thứ gì thậm chí không nhấp vào đâu đó trong trình chỉnh sửa. 4- Chờ cho đến khi lập chỉ mục hoàn tất. Tự động hoàn thành hoạt động ngay bây giờ.
Shahriar

1
Vẫn cần thiết trong XCode 11.5, Catalina, tháng 7 năm 2020. Cảm ơn rất nhiều!
Reuben Scratton


30

Những điều nên thử:

1

Chạy lệnh này trong thư mục dự án nếu bạn sử dụng cocoapods:

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


2

Làm sạch dữ liệu được lưu trong bộ nhớ đệm

Làm sạch dự án -> Cmd + Shift + K

Làm sạch Thư mục Xây dựng -> Cmd + Shift + Option + K

Nếu bạn bỏ qua bước một:
Xóa dữ liệu có nguồn gốc
Xcode Preferences-> Locations->
Biểu tượng mũi tên Đưa bạn đến DerrivedData-> Xóa thư mục


3

Kiểm tra các nguồn biên dịch trong giai đoạn xây dựng của bạn.

Mọi .swift.mtệp trong dự án phải nằm trong danh sách này hoặc nó sẽ không tự động hoàn thành trong các tệp đó.


4

Tối ưu hóa Trình chỉnh sửa của bạn:

Sử dụng fileprivate trên mọi thuộc tính và chức năng của lớp mà bạn có thể để giảm phạm vi công việc của Trình biên dịch cho mỗi mục.

Viết mã mô-đun / OOP để bạn có ít mã hơn để trình biên dịch đọc.

Tránh sử dụng Loại sai khi kết quả là một phép tính phức tạp và cố gắng chia các phép tính phức tạp thành các let this = smallerOperationcâu lệnh


Với XCode 9.2, không còn Biểu tượng Mũi tên trong Thư mục Dữ liệu Xuất phát. Cảm ơn vì mẹo tập tin riêng tư. Cơn ác mộng tiếp tục ...
Sal

Tôi vẫn thấy biểu tượng mũi tên. Đây có phải là phiên bản 9.2 trước đó hay không?
Sethmr

28

Phiên bản Xcode 11.0 (11A420a)

Tôi đã thử giải pháp từ Lal Krishna cho Xcode V11.0. Nó hoạt động một vài lần nhưng sau đó tôi không có kết quả.

Tôi đã tìm thấy một giải pháp. Bạn phải xóa hai tệp:

  1. Thư viện / Nhà phát triển / Xcode / Dữ liệu có nguồn gốc (như đã mô tả trước đây)
  2. Thư viện / Nhà phát triển / Xcode / UserData / IDEEditorInteractivityHistory

Giải pháp đó giúp tôi bây giờ. Có thể hữu ích cho người khác 😉


3
đã làm cho tôi. Tôi chỉ muốn nói rằng Visual Studio 2002 (!) Tốt hơn Xcode 2009-2019. Trong suốt những năm qua, Xcode quá lỗi. Tôi không hiểu tại sao Apple không quan tâm đến các nhà phát triển. Xcode được thực hiện bởi các nhà phát triển! (Tôi phải lấy nó ra)
user1105951

Điều đó phù hợp với tôi: Thoát Xcode, xóa 2 thư mục như bạn đã nói, khởi chạy lại Xcode và mọi vấn đề đều biến mất: D
phuongzzz

20

Điều này có thể xảy ra khi tệp không phải là thành viên của Target. Mở tệp mà tính năng tự động hoàn tất không hoạt động và hiển thị tab "Tiện ích" ở trên cùng bên phải của Xcode (màu xanh lam trong ảnh chụp màn hình bên dưới). Ảnh chụp màn hình của các nút xem trên cùng bên phải Xcode

Ảnh chụp màn hình của các tùy chọn Tư cách thành viên mục tiêu Xcode

Đảm bảo Mục tiêu của bạn (thường là tên ứng dụng của bạn) được chọn. Tính năng Tự động hoàn thành sẽ hoạt động gần như ngay lập tức mà không cần khởi động lại Xcode, dọn dẹp hoặc xóa Dữ liệu gốc.

Nếu nó đã được chọn, hãy đảm bảo bỏ chọn và kiểm tra lại lần nữa. Đối với tôi, nó đã thành công.


chỉ mở trang đó và đóng lại hoạt động. Tôi bối rối. Cảm ơn btw.
Okhan Okbay

Nó hoạt động trên xcode 10. Tệp thực sự đã là thành viên của mục tiêu. Tôi đã phải bỏ kiểm tra sau đó kiểm tra lại để được công nhận như vậy.
Jim75,

điều này đã xảy ra với tôi sau khi hợp nhất git, tôi đoán một nhánh đã viết trên tệp dự án hiện tại của tôi và nhánh kia không hợp nhất chính xác vào đó.
Asfand Shabbir

11

Tôi đang sử dụng Xcode 10.2 và tôi gặp vấn đề tương tự.

Câu trả lời này từ axel đã giúp tôi sửa chữa.

Dù sao, tôi sẽ mô tả thêm một chút:

  1. Truy cập YourProject.xcodeprojbằng cách nhấp với Nhấp chuột phải và mởShow Package Contents
  2. Đi tới xcuserdatavà xóa của bạnyouruser.xcuserdatad

Nếu bạn cũng có xcworkspace (nếu bạn đã có bất kỳ vỏ cài đặt) sau đó thực hiện bước 3 & 4, nếu không thì chỉ cần bỏ qua bước 3 & 4:

  1. Truy cập YourProject.xcworkspacebằng cách nhấp với Nhấp chuột phải và mởShow Package Contents
  2. Đi đến xcuserdatavà xóa của bạnyouruser.xcuserdatad

  3. Thoát Xcode

  4. Xóa dữ liệu có nguồn gốc bằng cách sử dụng Terminal:

rm -rf ~ / Library / Developer / Xcode / DerivedData

  1. Mở Xcode và kiểm tra xem nó có hoạt động không.

nhập mô tả hình ảnh ở đây


11

Điều này cũng có thể xảy ra nếu bạn đặt tên tệp của mình thừa. Ví dụ,

Data.swift

Data.swift


1
Trong trường hợp của tôi, đây là sự cố, tôi có cùng tên tệp trong 2 thư mục khác nhau
Raj

Điều này cũng xảy ra với tôi. Hai tệp ViewController
Shark Deng

1
Trong trường hợp của tôi, tôi có một nhóm ảo có tên ABC và một tệp trong nhóm đó có tên ABC.swift. Đổi tên tệp đã sửa lỗi này. Cảm ơn
Rem-D


5

Hãy thử làm điều này:

Chọn tệp >> kiểm tra xem tệp có được thêm vào mục tiêu UITesting hoặc UnitTesting hay không (Người kiểm tra tệp -> Tư cách thành viên mục tiêu) . Nếu vậy, hãy bỏ chọn hai mục đó và đảm bảo chỉ chọn mục tiêu dự án. Sau đó, xây dựng và thử nếu tính năng tự động hoàn thành hoạt động tốt.

Điều này đã làm việc cho tôi. Hy vọng nó sẽ giúp một ai đó.


4

Sau một thời gian dài tìm kiếm, cuối cùng tôi đã khắc phục được sự cố cho mình. Trong Xcode> Tùy chọn> Chỉnh sửa văn bản, trong "Hoàn thành mã", tôi đã chọn "Sử dụng phím Escape để hiển thị đề xuất hoàn thành" vì một số lý do. Ngay sau khi tôi bỏ chọn hộp này, tự động hoàn thành đã hoạt động như một sự quyến rũ, thậm chí không cần khởi động lại Xcode! (Xcode 10)


4

Đây là một chút giải pháp nhưng hiệu quả.

  1. Làm sạch dự án ... Command + Shift + K

  2. Xóa thư mục xây dựng ... Command + Shift + Options (Alt) + K

  3. Xóa dữ liệu dẫn xuất cho dự án ... Điều này có thể được thực hiện với sự trợ giúp của liên kết này:

    Làm cách nào để xóa dữ liệu bắt nguồn trong Xcode 9?

  4. Đóng XCode.

  5. Mở lại XCode (để quá trình lập chỉ mục hoàn tất) và Xây dựng dự án ... Command + B

Sau khi hoàn thành việc xây dựng, Các đề xuất sẽ trở lại. Tôi đã thử nó hai lần.

Cập nhật:

Đôi khi sự cố có thể đơn giản như tên tệp trùng lặp. Kiểm tra kỹ xem có bất kỳ tên tệp mới nào do bạn thêm vào có xung đột với các tệp cũ hơn không.


3

Tôi đã thêm vào đây những gì đang diễn ra trong dự án của mình đề phòng nó có thể giúp ích cho người khác ... Tôi có 2 tệp trùng tên và tôi không nhận ra.


2

Chỉ mất một ngày cố gắng giải quyết cơn ác mộng tự động hoàn thành của Xcode (9.2). Việc xóa dữ liệu có nguồn gốc dường như hoạt động trong thời gian ngắn sau đó mọi thứ được hoàn nguyên. Khởi động lại, v.v. và các voodoo được đề xuất khác không tạo ra sự khác biệt.

Tôi đã từ bỏ và tải xuống bản dùng thử 30 ngày của AppCode từ Jet Brains. Tự động hoàn thành hoạt động tốt ở đó và điều này có thể trùng hợp nhưng sau đó nó bắt đầu hoạt động trở lại trong dự án của tôi trong Xcode. Không thể đảm bảo rằng nó sẽ tiếp tục hoạt động ...


"voodoo gợi ý khác" lol - vì vậy cũng đưa ... chúng tôi mất rất nhiều thời gian tìm kiếm quanh công việc cho các lỗi táo, nhưng tôi dừng lại phàn nàn về xcode khi tôi bắt đầu sử dụng Android studio
JohnV

2

Nó có vẻ là tệp cụ thể trong trường hợp của tôi (Xcode 9.2) Đối với tôi, cách khắc phục là:

  1. Xóa tệp sự cố (xóa tham chiếu)
  2. Làm sạch và xây dựng
  3. Thêm lại tệp vào dự án (Tôi đã không kiểm tra các mục tiêu thử nghiệm)
  4. Xây dựng lại

Cuối cùng sau 3 giờ thử mọi thứ - tính năng tự động hoàn thành hoạt động như bình thường.


2

Vấn đề chủ yếu là do thiếu vị trí của một số tệp trong trình điều hướng dự án (lỗi xây dựng)

  1. Nhấn lệnh + 1 để mở Project Navigator ngăn
  2. Kiểm tra xem có tệp nào bị thiếu không

Hoặc bạn có thể:

  1. Xóa dữ liệu gốc (lệnh + shift + K)
  2. Làm sạch thư mục bản dựng (lệnh + shift + option + K)
  3. Nhấn xây dựng lại (lệnh + B)
  4. Bạn sẽ thấy lỗi xây dựng mà Xcode không thể tìm thấy một số tệp ngăn công cụ xây dựng tự động hoàn thành xử lý.
  5. Sửa và sửa mọi tệp bị thiếu mà bạn thấy.

Hi vọng điêu nay co ich



2

Đối với Xcode 11.4 (11E146)

Quay lại Dấu gạch chéo trong tên thư mục phá vỡ tính năng tự động hoàn thành, Nếu trường hợp này xảy ra, hãy xóa nó và xây dựng lại.

nhập mô tả hình ảnh ở đây


1

Đối với tôi, nó đã xảy ra trong tệp thử nghiệm của tôi, bởi vì nó không phải là một phần của mục tiêu vì một số lý do. Đặt thành viên mục tiêu của nó đã giải quyết được vấn đề.


1

Đối với tôi, sự cố đã xảy ra khi tôi loại bỏ tất cả các thay đổi của một tệp (trong Kiểm soát nguồn> Cam kết), việc này đã xóa tệp một cách hiệu quả. Đây là những gì tôi muốn và tôi nghĩ rằng tệp và tất cả các tham chiếu đến nó cũng sẽ bị xóa.

Tuy nhiên, vẫn có một tham chiếu đến tệp (được hiển thị màu đỏ) trong trình điều hướng Dự án. Việc xóa tệp (hiện không tồn tại) trong trình điều hướng Dự án đã đưa tính năng tự động hoàn thành trở lại một cách kỳ diệu.

Không giúp ích gì cho việc dọn dẹp, xóa dữ liệu có nguồn gốc, v.v. Tôi chỉ nhận ra tệp đã xóa vẫn hiển thị khi tôi cố gắng xây dựng dự án của mình, tất nhiên là không thành công vì nó không thể tìm thấy tệp đó.

Hy vọng điều này sẽ giúp ai đó tiết kiệm được 30 phút :)


Xem câu trả lời của tôi để biết lý do tại sao.
James Bush

@ponury, tôi không hiểu ... OP đoạn thứ hai là một giải pháp, không?
brasofilo

1

Sử dụng Command + B
hoặc Command + R để Xây dựng hoặc Chạy dự án
Xcode đôi khi gây rối;)


1
  1. kiểm tra xem bạn đã chọn Suggest completions while typingtrong Xcode -> Tùy chọn -> Chỉnh sửa Văn bản hay chưa
  2. điều hướng đến người dùng-> Thư viện-> Nhà phát triển-> Xcode-> DerivedData trong Finder và xóa thư mục DerivedData

1

Trường hợp của tôi có thể quá cụ thể để trợ giúp, nhưng nó có thể cung cấp cho ai đó ý tưởng về cách giải quyết lỗi tự động hoàn thành bị hỏng. Xcode 10.2.1.

Trong trường hợp của tôi, tính năng tự động hoàn thành đã ngừng hoạt động hoàn toàn và những câu trả lời khác không có trong số này đã giúp tôi. Ngoài ra, quạt trên máy tính có thể nghe thấy to hơn cho thấy có thứ gì đó đang hoạt động quá mức (không có ứng dụng nào khác đang chạy), cần lưu ý rằng tôi đang chỉnh sửa trên máy tính xách tay MacBook Pro. Nó dường như được liên kết với việc trình soạn thảo đang vật lộn để phân tích cú pháp phương trình tôi đã viết:

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)
 }

Tôi đang tìm cách tạo hiệu ứng cho chế độ xem văn bản sang trái, phải hoặc ở giữa tùy thuộc vào prefs của người dùng. Các newPositionlà một CGPointmà văn bản sẽ động đến. Dù sao thì, tôi đã chia nhỏ các phương trình ra và đột nhiên tính năng tự động hoàn thành bắt đầu hoạt động và quạt im lặng! Tôi đã có thể tạo lại sự cố cụ thể này nhiều lần bằng cách nhập lại mã trên và sau đó thay thế nó bằng:

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

Tôi muốn thêm một giải pháp nữa vào đống giải pháp, bởi vì nó là giải pháp duy nhất phù hợp với tôi và không tìm thấy ở đây.

Xcode thường đi kèm với hai cấu hình xây dựng mặc định cho mọi dự án. Release& Debug. Tôi có thêm một cái cho các bài kiểm tra đơn vị của tôi được gọi là Testing. Trong Xcode 10.1, 10.2, 10.3 và 11 beta, hệ thống xây dựng mới dường như không thích nó và sẽ chỉ tự động hoàn thành nếu bạn sử dụng Releasehoặc Debug. Bất kỳ cấu hình bản dựng tùy chỉnh nào đều phá vỡ quá trình tự động hoàn thành trong dự án hỗn hợp (nhanh chóng + objc) với các thử nghiệm đơn vị.


0

Liên kết này đã giúp tôi. Mở Cài đặt bản dựng và điền vào các đường dẫn tìm kiếm khung. Xem hình ảnh bên dưới.

nhập mô tả hình ảnh ở đây


0

Lỗi bản dựng có thể phá vỡ tính năng tự động hoàn thành trong Xcode.


0

Tôi đã gặp sự cố với 100% không hoạt động tự động hoàn thành, không có văn bản nào ở đây giúp ích. Một điều tôi nhận thấy - nó đã bị hỏng ngay sau khi thêm một số thực thể vào tệp .xcdatamodel, có định nghĩa lớp codegen theo mặc định.

Vì vậy, tôi không ngạc nhiên khi không sử dụng codegen kiểu cũ (và tất nhiên là tạo các lớp) đã khắc phục được sự cố ngay lập tức, ngay cả khi không khởi động lại xcode.

nhập mô tả hình ảnh ở đây


0

Với Xcode 11.1, chỉ thực hiện Clean Build Folderhoặc xóa dữ liệu có nguồn gốc là không đủ để sửa lỗi tự động hoàn thành.

Chỉ sau khi khởi động lại máy Mac của tôi , mọi thứ mới trở lại bình thường


0

Nếu bạn gặp vấn đề với sự hoàn thành kỳ lạ / tự động hoàn thành / intellisense (không hiển thị nội dung mặc định như các phương thức đại biểu và giao thức nguồn dữ liệu), chỉ cần thay đổi mục tiêu của bạn (ví dụ: từ trình mô phỏng iPhone 8 sang thiết bị thực), xây dựng dự án và chuyển trở lại mục tiêu ban đầu của bạn .

Tương tự với các vấn đề với Trình tạo giao diện (bảng phân cảnh) không hiển thị bất kỳ thứ gì, nhưng chỉ "không có gì được chọn" bất cứ khi nào bạn chọn bất kỳ phần nào của chế độ xem. Chỉ cần chuyển sang Xib / Storyboard khác (hoặc thậm chí tạo mới), kiểm tra xem nó có hoạt động ở đó không và chuyển trở lại.

Những cách giải quyết này phù hợp với tôi trong cả hai trường hợp (có cả hai vấn đề trong một ngày với một dự án trên Xcode 10.2.1). Từ những gì tôi đã thấy trên khắp các diễn đàn internet, có vẻ như đây là những lỗi chưa bao giờ được sửa kể từ Xcode 6.x trở lên.

Chúc mừng!


0

Trong trường hợp của tôi (Xcode 11.1), Điều đó đã xảy ra khi tôi dừng tự động lập chỉ mục Xcode bằng lệnh nàydefaults write com.apple.dt.Xcode IDEIndexDisable -bool true .

Vì vậy, tôi cuộn lại nó với defaults write com.apple.dt.Xcode IDEIndexDisable -bool false. sau đó khởi động lại macOS và chạy lại Xcode.


0

Gặp sự cố tương tự với Xcode 11.3. Không có gì ở trên không giúp được gì, hóa ra là tôi đã xây dựng lỗi. Chỉ cần sửa lỗi bản dựng và tính năng tự động hoàn thành sẽ hoạt động trở lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.