Không thể chèn kết nối ổ cắm mới: Không thể tìm thấy bất kỳ thông tin nào cho lớp có tên


281

Tôi đã gặp một lỗi trên Xcode nói rằng không có thông tin về trình điều khiển xem.

Không thể chèn kết nối ổ cắm mới: Không thể tìm thấy bất kỳ thông tin nào cho lớp có tên

Tại sao chuyện này đang xảy ra?

Ảnh chụp màn hình 1


2
Tôi nghĩ rằng điều này đã được hỏi trước đây: stackoverflow.com/questions/17735182/
Kẻ

Tôi chỉ cần thoát Xcode, sau đó mở lại. trình biên dịch sẽ tải lại tất cả các tệp và nó có thể phát hiện tệp bạn đang tìm kiếm
Jane gà

Kiểm tra xem bạn chưa có ổ cắm chưa được kết nối trong tệp trình điều khiển xem của bạn. Tôi phát hiện ra rằng tôi đã làm. Sau khi tôi xóa nó, tôi không có vấn đề gì.
Kex

Đối với tôi không có giải pháp nào ở trên hoạt động. Tôi phải xóa trình điều khiển xem, tôi đã sao chép và dán lại trong bảng phân cảnh của mình để sử dụng lại. Sau đó, tôi đã kéo một trình điều khiển chế độ xem mới trong bảng phân cảnh và mọi thứ đều ổn :). Tôi hy vọng nó có thể giúp một người có cùng vấn đề.
Arslan Saleem

Đây là một BUG trong XCode và tôi không biết tại sao họ không sửa nó. Bạn phải đóng XCode và mở lại. Khi bạn thử lại để đặt các cửa hàng, nhưng lần này hãy để lại một loạt ENTERS trước khi thực hiện. Bạn không phải xóa bất cứ điều gì hoặc lãng phí thời gian của bạn vào các tùy chọn khác ... Điều này sẽ giải quyết vấn đề của bạn.
mavesonzini

Câu trả lời:


692

Dưới đây là một số điều có thể khắc phục điều này (theo thứ tự độ khó tăng dần):

  • Làm sạch dự án ( Sản phẩm> Sạch )
  • Dán thủ công vào

    @IBOutlet weak var viewName: UIView!
    // or
    @IBAction func viewTapped(_ sender: Any) { }

    và kiểm soát kéo đến nó. (Thay đổi loại khi cần thiết.) Cũng thấy điều này .

  • Hoàn toàn đóng Xcode và khởi động lại dự án của bạn.

  • Xóa thư mục Dữ liệu đã tạo (Chuyển đến Xcode> Tùy chọn > Vị trí và nhấp vào mũi tên màu xám của thư mục Dữ liệu đã tạo. Sau đó xóa thư mục dự án của bạn.)
  • Nhấp vào xóa trên lớp, xóa tham chiếu (không phải Di chuyển đến Thùng rác) và thêm lại vào. (xem câu trả lời này )

đừng quên xóa lớp trên trình điều khiển xem để các bước này hoạt động
reggie 13/2/2017

8
Không có bước nào trong số này hoạt động với tôi trong Xcode 8.3.2. Tôi đã phải "Hiển thị thanh tra danh tính"> xóa trường "Lớp" (tô sáng tên và xóa lớp tùy chỉnh)> nhập lại tên lớp trong trường "Lớp". Xcode tự động hoàn thành tên lớp. Sau đó tôi nhấn enter.
PeqNP

Thêm dòng alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'vào ~ / .bashrc của bạn để sử dụng lệnh purgederiveddatađể xóa bằng một lệnh
eskimwier

Tôi đã tìm thấy một cách khác để khắc phục sự cố này, điều này đã xảy ra với tôi khi tôi thay đổi một số cài đặt bản dựng để cải thiện tốc độ xây dựng của mình. stackoverflow.com/a/50555888/2952876
Mathias Van Houtte

Tôi rất khuyến khích tất cả các bạn thử giải pháp của tôi dưới đây. Sẽ bị rút ruột khi biết rằng mọi người phải khởi động lại máy tính của họ vì một lỗi thường xuyên xuất hiện.
Stephen Paul

134

Hoặc nếu không có cách nào ở trên hoạt động, hãy nhập tên của ổ cắm vào tệp trước @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!rồi nhấp và kéo từ ổ cắm trong ngòi đến biến bạn vừa lập trình. Nó sẽ hoạt động mà không có bất kỳ rắc rối nào trong việc làm sạch, xây dựng và xóa bất cứ thứ gì.


4
thường là giải pháp nhanh hơn thay vì dành nhiều tuổi để dọn dẹp, xây dựng, v.v ... cảm ơn.
mohonish

1
Rất đẹp và một khi bạn làm điều này, Tự động bắt đầu hiển thị, cảm ơn.
AmJa

1
Nắm tay của tất cả kết nối Đối tượng XIB của bạn với IBoutlets. Sau đó thử kết nối các ràng buộc IBOutlets của họ. không có cái này nó sẽ luôn hiển thị lỗi
Chandramani

Nó cũng có thể tạo sự khác biệt khi bạn cố gắng chèn ổ cắm mới. Đối với, đầu danh sách (nơi có không gian rõ ràng ở trên) làm việc; giữa danh sách thì không.
Richard

1
Điều này nên được đánh dấu là câu trả lời tốt nhất. Nó dễ dàng hơn, nhanh hơn và đáng tin cậy hơn. Ngoài ra nó hoạt động tất cả các thời gian! Làm tốt lắm và cảm ơn
@StephenPaul

51

Chỉ cần thực hiện hai bước sau để thoát khỏi lỗi này

  1. Làm sạch dự án bằng cách sử dụng Sản phẩm> sạch
  2. Chạy dự án

Bây giờ hãy thử thêm hành động hoặc ổ cắm. Đó là nó.

Mã hóa hạnh phúc


4
Lạ thật ... hai bước dễ dàng này cũng giúp tôi giải quyết vấn đề. Vì vậy, tôi khuyên bạn nên thử các bước đơn giản này trước :-)
mã chéo

49

Không có lời khuyên nào trong câu trả lời tốt nhất làm việc cho tôi. Đã phát điên. Sau đó, nhận thấy rằng Trình chỉnh sửa Trợ lý bằng cách nào đó đã được đặt thành Thủ công và tôi đã ở trên ViewControll.swift (Giao diện) thay vì tệp ViewControll.swift.

Thay đổi điều đó và vấn đề được giải quyết. Một chút xấu hổ nhưng hey, tất cả chúng ta đang học.

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


1
Câu trả lời cứu người! Không có câu trả lời nào khác giải quyết nó một lần và mãi mãi. Quá tệ là mô tả lỗi không đưa ra gợi ý nhỏ nhất mà bạn có thể có trong tệp worng. Cảm ơn. +1 cho hình ảnh nó làm cho tất cả rõ ràng.
Pauloco

Tôi nhận thấy một cái gì đó khá giống nhau, nhưng khác nhau: Trong đường dẫn ở trên cùng nơi tên của lớp được hiển thị, chỉ có tên lớp, nhưng thiếu phần đầu của đường dẫn là trình điều khiển myProject> appName> và sau đó là lớp. Tôi đã chọn một lớp khác sau đó quay lại lớp có vấn đề và mọi thứ đều ổn
claude31

15

Dưới đây là các bước giải quyết cho tôi:

  1. Xóa tham chiếu tên lớp khỏi Chế độ xem (bảng phân cảnh / xib) và lưu;
  2. Thêm tên lớp một lần nữa và lưu lại;
  3. Làm sạch và xây dựng;

Làm xong !


10

Tôi gặp vấn đề tương tự. Tôi mệt mỏi dưới các giải pháp nhưng không hiệu quả:

  1. Clean Project (cmd + shift + k) và ngay cả Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived dataModule Cache content

Dưới đây giải quyết vấn đề này:

  1. Di chuyển đến tệp mã nguồn và viết IBOutlet / IBActionthủ công (sao chép dán ưa thích)

Ảnh chụp màn hình 1

  1. Sau đó di chuyển đến tập tin Storyboard và mở Utilitescửa sổ
  2. Đi đến Connection Inspector
  3. Sau đó Kết nối IBOutletIBActionghi vào tệp nguồn với Trình tạo giao diện.

Ảnh chụp màn hình 2


Kéo Outlets / Action hoàn toàn không hoạt động, nhưng sau khi tôi thực hiện thủ công như thế này, mọi thứ sẽ hoạt động bình thường trở lại.
Jason

Đây là một phương pháp thay thế tiêu chuẩn để thực hiện kết nối. Trong trường hợp hành động nút radio, cách duy nhất, AFAIK. Trong bảng phân cảnh, bạn cũng có thể nhấp chuột phải vào bộ điều khiển, tìm chức năng và tạo kết nối.
cộc lốc

8

Tôi đã từng gặp vấn đề tương tự. Tôi nhận ra rằng trong mục X-Code Manualđã được chọn khi tôi cố gắng tạo ổ cắm bằng cách kéo điều khiển

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

Sau khi tôi đặt nó tự động, nó hoạt động

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


Tôi đã có vấn đề chính xác này. Thậm chí không nhận thấy sự khác biệt.
Vũ điệu Joshua

Tuyệt quá!!! Tôi đã mất rất nhiều thời gian cho dự án dọn dẹp lỗi này, khởi động lại xCode, xóa dữ liệu dẫn xuất, nhưng đó chỉ là giải pháp hiệu quả với tôi! Cảm ơn rất nhiều!
Anton Eregin

7

Tôi đã giải quyết vấn đề này bằng cách lập trình tạo Nhãn và Trường văn bản, rồi kéo Lệnh từ các vòng tròn trống nhỏ bên trái mã đến các thành phần trên Bảng phân cảnh. Để minh họa quan điểm của tôi: Tôi đã viết @IBOutlet weak var HelloLabel: UILabel!, sau đó nhấn Command và kéo mã vào thành phần trên bảng phân cảnh.


Giải pháp này đã làm việc hoàn hảo cho tôi! Ngoài việc @IBOutlet weak var myButton: UIButtontôi đã sử dụng quy trình tương tự để thiết lập @IBAction func doSomething(_ sender: Any) { }và sau đó kết nối func này với UIButton trên bảng phân cảnh của mình. Cảm ơn bạn đã chia sẻ @KuboAndTwoStrings
Nii Mantse

6
  1. Đóng dự án bạn đang làm việc với.
  2. Xóa thư mục 【DeruredData】 của dự án của bạn. (Thư mục này có thể bên trong thư mục của dự án hoặc bên trong
    ~/Library/Developer/Xcode/DerivedData/
    (dự án của bạn) /) hoặc ở nơi nào khác do bạn thiết lập.
  3. khởi động lại dự án của bạn.

4

Tôi đã tìm thấy một cách giải quyết dễ dàng hơn vì tôi có thể tìm thấy lỗi này trên XCODE 9.

Bước một đi đến trình điều khiển khung nhìn của bạn và viết thủ công thuộc tính bạn muốn kết nối như ví dụ dưới đây, đảm bảo bạn sử dụng định dạng bên dưới.

@IBOutlet câu hỏi var yếuStackView: UIStackView!

Bước hai đi đến bảng phân cảnh của bạn và kết nối chế độ xem của bạn hoặc bất cứ điều gì bạn đang cố gắng kết nối với tài sản bạn đã tạo ở bước 1.

Ở trên sẽ giúp bạn tiết kiệm thời gian để loại bỏ và làm sạch dữ liệu có nguồn gốc.


3

Tôi đã gặp lỗi này khi tôi đổi tên lớp. Sau đó, tôi đã giải quyết nó chỉ bằng cách làm theo các bước dưới đây

  • Trong Menu Xcode -> Product->Clean
  • Restart mã Xcode

đây chỉ là giải pháp hiệu quả với tôi
Joseph Astrahan

2

Trong trường hợp của tôi, đây là bc, tôi đã chọn một tệp UIViewContoder mới trong IB và sau đó thử kéo ctrl vào bộ điều khiển mới này mà không xóa các kết nối trước đó trong Trình kiểm tra kết nối. Loại bỏ những cái đầu tiên và thử lại.


2

Đối với tôi nó hoạt động khi trên tab bên phải> Bản địa hóa, tôi đã chọn hộp kiểm tiếng Anh. Ban đầu chỉ có Base được kiểm tra. Sau đó tôi không còn vấn đề gì nữa. Hi vọng điêu nay co ich!


2

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

Tôi đã chọn tùy chọn Tự động để chọn tệp ViewControll.swift. Và sau đó tôi có thể lấy ra.


2

Vui lòng thực hiện hai bước sau chỉ để thoát khỏi lỗi này.

1.  Clean Project using Product -> clean.
2.  Run the Project.

Bây giờ hãy thử thêm / Kết nối các hành động hoặc cửa hàng.

Làm việc tốt cho tôi nhiều lần.


1

Nó đã xảy ra khi tôi thêm một Swifttập tin vào một Objective-Cdự án.
Vì vậy, trong tình huống này những gì bạn có thể làm là. .

  • Select MY_FILE.Swift >> Delete >> Remove Reference
  • Select MY_FOLDER >> Add MY_FILE.Swift
  • Voila ! You are good to go .

Lên cho cái này! Tôi đã cố gắng tự giải quyết vấn đề này trong nửa giờ rồi lol. Các vấn đề như thế này trong Storyboards rất dễ khắc phục. Cảm ơn! Điều này đã giúp tôi rất nhiều!
Glenn

0

Giải pháp đơn giản nhất: - Tôi đã sử dụng xCode 7 và iOS 9.

trong .m của bạn

xóa #import "VC.h"

lưu .m và liên kết ổ cắm của bạn một lần nữa nó hoạt động tốt.


0

Tôi đã sử dụng xCode 7 và iOS 9.

trong .m của bạn

xóa bỏ #import "VC.h"

lưu .m và liên kết ổ cắm của bạn một lần nữa nó hoạt động tốt.

trong .m của bạn

thêm vào #import "VC.h"

tiết kiệm .m


0

Không ai trong số này làm việc cho tôi nhưng tôi đã tìm ra điều này.

Bên trong bảng phân cảnh tôi đã sao chép ViewContoder tương ứng vào bảng tạm và xóa nó, sau đó tôi dán lại.

Đột nhiên mọi thứ lại hoạt động như một bùa mê!

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.