Tự động hoàn thành Xcode 7.3 thật khó chịu


96

Có một tự động hoàn thành mới trong Xcode. Có lẽ có thể hữu ích vì nó không chỉ kiểm tra phần đầu của các tên, v.v ... Nhưng tôi thấy rằng nó rất thường xuyên không tìm thấy tên lớp hoặc tên const nào cả, v.v. Tôi cần phải tự mình nhập toàn bộ tên. Trên tất cả, tôi thấy nó làm cho cuộc sống của tôi khó khăn hơn và viết mã tốn nhiều thời gian hơn. Có cách nào để chuyển sang cách cũ mà nó đã từng hoạt động không?


Những người sử dụng đã xử lý 7.3 dưới dạng bản beta đã phàn nàn về điều đó trong nhiều tuần: stackoverflow.com/questions/35586056/…
matt

bạn có thể tải xuống xcode cũ hơn theo cách thủ công trên developer.apple.com/downloads , ví dụ: xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
George

43
Tôi không thể tin rằng họ đưa ra một bản phát hành lớn với một thứ quan trọng như tự động hoàn thành bị hỏng. Như thể không có ai tại Apple thực sự sử dụng Xcode để phát triển.
soleil

3
Điều này ảnh hưởng nghiêm trọng đến năng suất của tôi đến nỗi tôi đang hoàn nguyên về Xcode 7.2.1 để thực sự có thể quay lại tốc độ phát triển bình thường một lần nữa. Tôi thường khó chịu với Apple với điều này. Họ không chỉ ép tôi đến El Capitan để chạy Xcode 7.3 mà khi đến đó, tôi thấy miền đất hứa khác xa thực tế. Họ có kiểm tra công cụ này ở tất cả? Sự thiếu tôn trọng điển hình đối với các nhà phát triển 'của họ', như mọi khi.
Quintin Willison

2
Xcode 7.3.1 đã được phát hành vào ngày hôm qua, sau những thử nghiệm của tôi, lỗi này vẫn tồn tại ... Nhưng Apple nói rằng họ đã sửa nó trong 7.3.1.
Vincent Sit

Câu trả lời:


18

Xcode 7.3.1

  1. Trong Xcode> Tùy chọn> Chỉnh sửa Văn bản

    bỏ chọn Enable type-over completions

  2. khởi động lại Xcode


14

Có vẻ như việc bỏ chọn hộp kiểm "Bật tính năng hoàn thành gõ qua" trong XCode -> Tùy chọn -> Chỉnh sửa văn bản thực hiện được mẹo. Ít nhất trong trường hợp của tôi, tính năng tự động hoàn thành đã trở lại một cách cũ, vì vậy nó có thể tự động điền tên lớp mà tôi phải nhập thủ công trước đó.


Đã thử nó, nhưng nó vẫn không hoàn thành tên lớp một cách chính xác.
Erik B

Tôi không thấy sự khác biệt. Vẫn cần hoàn thành tên tùy chỉnh ... :(
matthewfx

Để làm cho việc này hoạt động, bạn phải bật lập chỉ mục. Để bật lập chỉ mục, bạn không thể thực hiện từ bên trong Xcode. Bạn phải thực hiện dòng sau trong một trình bao. Sau đó khởi động lại Xcode. % defaults xóa com.apple.dt.Xcode IDEIndexDisable xem stackoverflow.com/questions/7328041/…
andrewz

5

Đây không phải là một giải pháp thích hợp, NHƯNG nó đã cho phép tôi (hầu như không) duy trì sự tỉnh táo của mình trong vài ngày qua: Sau mỗi lần xây dựng, bạn cần phải dọn rác thư mục Dữ liệu gốc của mình. Bạn có thể tìm thấy thư mục này trong Xcode > Preferences > Locations > Derived Data. Chỉ cần thùng rác toàn bộ và nó sẽ bắt đầu bước lập chỉ mục lại để khôi phục chức năng tự động hoàn thành thích hợp. Thật không may, tôi nhận thấy rằng sau khi tôi xây dựng, hành vi tự động hoàn thành sẽ trở lại trạng thái bị hỏng.


4

chỉ cần mở thư mục dữ liệu dẫn xuất Xcode và xóa thư mục

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

sau đó khởi động lại Xcode, bây giờ tính năng tự động hoàn thành hoạt động giống như một sự quyến rũ


Điều này đã làm việc cho tôi, tôi không biết tại sao nó bị đánh giá tiêu cực.
Mike M

1

Tôi có ấn tượng rằng một số 'phần' của tự động hoàn thành chỉ đơn giản là thất bại sau một thời gian. Tôi sử dụng để khởi động lại máy Mac để nó hoạt động trở lại. Nhưng đôi khi nó lại thất bại khá sớm. Có thể câu trả lời của @Alex Bykov kết hợp với khởi động lại sẽ thực hiện thủ thuật.

Dù sao thì: tự động hoàn thành Xcode luôn là chuyện tào lao. AppCode được sử dụng để làm cho nó tốt hơn nhiều. Thật không may là chưa có nhanh chóng.


1

Đóng Xcode, mở Xcode, để nó lập chỉ mục, nó hoạt động.


1
Đáng buồn thay, đó là lựa chọn duy nhất.
thedp

0

nó không tìm thấy tên lớp

Để giải quyết vấn đề, bạn có thể thử nhấn Command + Shift + KCommand + B vài lần để nó hoạt động tạm thời.


1
Đã làm Cmd + Shfit + K (Clean), Cmd + Shfit + Opt + K (Clean Build Folder), đóng Xcode, xóa ~/Library/Developer/Xcode/DerivedData, khởi động lại OS X mà vẫn không được. :-)
TaylanUB

1
Chúng tôi có một dự án khá lớn cần 20 phút để biên dịch từ đầu, vì vậy việc dọn dẹp và xây dựng lại không phải là một lựa chọn đối với chúng tôi ...
longbow

0

Xcode 7.3.1

Tôi sẽ chia sẻ một lý do khả thi khác, mà sau vài ngày chúng tôi đã phát hiện ra. Chúng tôi có nhiều lược đồ và trong một trong số chúng, tiêu đề bắc cầu đang nhập một tệp không tồn tại nữa. Vì vậy, nó không bị hỏng trong khi biên dịch và chạy (tiêu đề thuộc về một lược đồ khác) nhưng nó khiến tự động hoàn thành bị hỏng (không thể tìm thấy bất kỳ lớp target-c nào).

Hy vọng nó sẽ giúp một ai đó!


0

Sau khi đã thử các phương pháp khác nhau:

  • Xóa dữ liệu có nguồn gốc
  • Đã bật mô-đun chuyển đổi trong Cài đặt bản dựng
  • Sạch sẽ
  • Khởi chạy lại

Chỉ điều này hoạt động:

  • Tìm bất kỳ mã (/ * abc * /) được nhận xét nào sau khi @end trong tệp của bạn và xóa.

Tín dụng cho Max_B: https://forums.developer.apple.com/thread/7439

Trong trường hợp của tôi, các dự án khác đã tự động hoàn thành một cách chính xác. Nếu tất cả các dự án của bạn không dự đoán đúng mã, thì đó có thể là một vấn đề khác và các câu trả lời khác có thể hoạt động.


-1

Tôi gặp phải sự cố này khi đang cố gắng tạo ứng dụng OS X và tôi đã có thể khắc phục sự cố này bằng cách đảm bảo rằng tài liệu Xcode 7.3 và tài liệu OS X 10.11.4 đã thực sự được tải xuống. Làm điều này đã khôi phục hoàn toàn chức năng tự động hoàn thành của tôi. Hướng dẫn đầy đủ của tôi ở bên dưới cũng như trong câu trả lời của tôi cho một câu hỏi tương tự: https://stackoverflow.com/a/39420664/3444925

Bản thân tôi đã gặp sự cố này và sau khi xem qua tất cả các câu hỏi và câu trả lời tương tự khác về vấn đề này, tôi không thể tìm ra giải pháp. Tuy nhiên, cuối cùng tôi đã tìm thấy thứ phù hợp với mình.

Đi tới Xcode -> Preferences -> Components. Ở đó, bạn có thể sẽ tìm thấy một màn hình giống như sau:

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

Điều này cho thấy rằng tài liệu chưa được tải xuống và do đó, bất kỳ nỗ lực nào để lập chỉ mục lại hoặc xây dựng lại ứng dụng mà không tải xuống tài liệu sẽ khiến bạn không thể sử dụng chức năng tự động hoàn thành.

Sau khi tôi tải xuống Tài liệu Xcode 7.3 và Tài liệu OSX 10.11.4, điều này là đủ để tôi khôi phục lại chức năng tự động hoàn thành (Tôi đang cố gắng xây dựng một ứng dụng OS X, vì vậy hãy tải xuống càng nhiều tài liệu càng tốt cho bạn ).


Liên kết đến các tài nguyên bên ngoài được khuyến khích, nhưng hãy thêm ngữ cảnh xung quanh liên kết để những người dùng đồng nghiệp của bạn sẽ biết nó là gì và tại sao nó ở đó. Luôn trích dẫn phần có liên quan nhất của một liên kết quan trọng, trong trường hợp không thể truy cập trang web mục tiêu hoặc chuyển sang trạng thái ngoại tuyến vĩnh viễn.
pableiros

Tôi chỉ cần thêm câu trả lời đầy đủ của tôi ở đây là một khối trích dẫn ở đây @pableiros
jkunzika

-1

Tôi đã không gặp phải vấn đề này cho đến khi tôi tạo một vài tệp lớp mới. Các lớp khác hoạt động tốt, nhưng tính năng tự động hoàn thành sẽ KHÔNG hoạt động đối với bất kỳ thứ gì trong tệp mới ...

KHẮC PHỤC (đối với tôi) - Tôi đã phải thêm các tệp đó vào TẤT CẢ các mục tiêu của mình, bao gồm cả mục tiêu kiểm tra đơn vị mặc dù tôi chưa sử dụng chúng.

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.