ChatGPT解决这个技术问题 Extra ChatGPT

Could not insert new outlet connection: Could not find any information for the class named

This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.

I got an error on Xcode saying that there was no information about the view controller.

Could not insert new outlet connection: Could not find any information for the class named

Why is this happening?

https://i.stack.imgur.com/ToKcH.png

I think this has been asked before: stackoverflow.com/questions/17735182/…
I simply quitted Xcode, then re-open it. the compiler will re-load all files and it can detect the file you are looking for
Check you don't already have an unconnected outlet in your view controller file. I discovered that I did. After I deleted it I had no issues.
For me none of above solutions worked.I had to delete view controller, which i copied and pasted again in my storyboard to reuse that.Then I dragged a new view controller in storyboard and every thing got fine :). I hope it might help someone with same problem.
This is a BUG in XCode, and I don't know why they don't fix it. You have to close XCode and re open. When you do try again to put the outlets, but this time leave a bunch of ENTERS before making it. You don't have to delete anything or waste your time on other options... This will solve your problems.

S
Suragch

Here are some things that can fix this (in increasing order of difficulty):

Clean the project (Product > Clean)

Manually paste in @IBOutlet weak var viewName: UIView! // or @IBAction func viewTapped(_ sender: Any) { } and control drag to it. (Change type as needed.) Also see this.

Completely close Xcode and restart your project.

Delete the Derived Data folder (Go to Xcode > Preferences > Locations and click the gray arrow by the Derived Data folder. Then delete your project folder.)

Click delete on the class, remove reference (not Move to Trash), and add it back again. (see this answer)


dont forget to remove the class on the view controller so that this steps will work
None of these steps worked for me in Xcode 8.3.2. I had to "Show Identity Inspector" > cleared the "Class" field (highlight the custom class's name and delete) > re-enter the class name in the "Class" field. Xcode auto-completed the class name. I then hit enter.
Add the line alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*' to your ~/.bashrc to use the command purgederiveddata to clear with one command
I found another way to fix this issue, this happened to me when I changed some build settings to improve my build speed. stackoverflow.com/a/50555888/2952876
I would strongly encourage you all to try my solution below. Would be gutted to know that people are having to restart their computers for a bug that shows frequently.
S
Stephen Paul

Or if none of the above works, type out the name of the outlet into the file first @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint! and then click and drag from the outlet in the nib to the variable you just programmatically created. It should work without any of the hassle of cleaning, building, and deleting anything.


often the faster solution instead of spending ages to clean, build, etc. thanks.
Very nice and once you do this the Automatic starts showing up, thanks.
Fist of all connect your XIB Object to IBoutlets.Then try to connect their constraints IBOutlets. without this it will always show error.
It can also make a difference where you try to insert the new outlet. For, the top of the list (where there is clear space above) worked; the middle of the list did not.
This should be marked as the best answer. It is easier, faster and more reliable. Also it works all the time! Good job and thanks @StephenPaul
Q
Quango

Just perform the two following steps to get rid of this error

Clean project using Product > clean Run the project

Now try to add the action or outlet. That's it.

Happy Coding


Strange ... this easy two steps helped to solve the problem for me, too. So I recommend, to try these easy steps first :-)
J
Joshua Dance

None of the tips in the best answer worked for me. Was going crazy. Then noticed that the Assistant Editor had somehow gotten set to Manual and I was on the ViewController.swift (Interface) instead of the ViewController.swift file.

Changed that and problem solved. A bit embarrassing but hey, we are all learning.

https://i.stack.imgur.com/XzfgU.png


Life saver answer! None of the other answers solved it once and forever. Too bad that the error description does not give the least hint that you might be in the worng file. Thanks. +1 for the image it made it all clear.
I noticed something pretty similar, but different : In the path at top where the name of class is displayed, there was just the class name, but missing beginning of path as myProject > appName > controller and then the class. I selected another class then back to the problematic one, and everything OK
A
Almeida

Here are the steps solved for me:

Remove Class name reference from View(storyboard/xib) and save; Add Class name again and save; Clean and Build;

Done !


this is what worked for me. none of the other answers worked
J
Jayprakash Dubey

I had the same issue. I tired below solutions but didn’t worked :

Clean Project (cmd + shift + k) and even Clean Project Build (cmd + shift + alt + k) Deleted Derived data and Module Cache content

Below workaround to this issue :

Move to source code file and write the IBOutlet / IBAction manually (copy paste preferred)

https://i.stack.imgur.com/XgDZ2.png

Then move to Storyboard file and Open Utilites window Goto Connection Inspector Then Connect the IBOutlet and IBAction written in source file with Interface Builder.

https://i.stack.imgur.com/i3T4a.png


Dragging Outlets/Actions weren't working at all, but after I did it manually like this, everything worked properly again.
This is a standard alternative method to make connections. In the case of radio button actions, the only way, AFAIK. In the storyboard, you can also right click on the controller, find the function, and make the connection.
V
Vitalii

I had the same problem. I realised than in X-Code Manual item was selected when I tried to create an outlet by control-drag

https://i.stack.imgur.com/aU9vY.png

After I set it to automatic it worked

https://i.stack.imgur.com/d4zEA.png


I had this exact problem. Didn't even notice the difference.
Great!!! I've lost such a lot of time for this bug cleaning project, restarting xCode, deleting derived data, but that was only solution that worked for me! Thanks a lot!
K
KuboAndTwoStrings

I solved this problem by programmatically creating the Labels and Textfields, and then Command-Dragged from the little empty circles on the left of the code to the components on the Storyboard. To illustrate my point: I wrote @IBOutlet weak var HelloLabel: UILabel!, and then pressed Command and dragged the code into the component on the storyboard.


This solution worked perfectly for me! Apart from the @IBOutlet weak var myButton: UIButton I used the same process to set up @IBAction func doSomething(_ sender: Any) { } and then connected this func to UIButton on my storyboard. Thanks for sharing this @KuboAndTwoStrings
S
Sangram Shivankar

Close the project you are working on with. Delete your project's【DerivedData】folder. (This folder may inside your project's folder, or inside ~/Library/Developer/Xcode/DerivedData/ (your project)/) or somewhere else that was setup by you. restart your project.


V
Vinoth Vino

I got this bug when I renamed the class. Then I solved it just by following the below steps

In Xcode Menu -> Product -> Clean

Restart the Xcode


this was only solution that worked for me funny enough.
G
GyroCocoa

I found an easier workaround as I this bug can be found on XCODE 9.

Step one go to your viewcontroller and manually write the property you want to connect as the below example, make sure you use the below format.

@IBOutlet weak var questionsStackView: UIStackView!

Step two go to your storyboard and connect your view or whatever your trying to connect to the property you created in step 1.

The above will save you time of removing and cleaning derived data.


D
Devendra Singh

Please perform the following two steps only to get rid of this error.

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

Now try to add/Connect the actions or outlets.

Working Fine for me for many times.


M
Marius Waldal

In my case this was bc I chose a new UIViewController file in IB and then tried to ctrl-drag to this new controller without first removing the previous connections in the Connections Inspector. Remove those first and try again.


l
lmicu

For me it worked when on the right tab > Localization, I checked English check box. Initially only Base was checked. After that I had no more problems. Hope this helps!


A
Arpit B Parekh

https://i.stack.imgur.com/nC9VG.png

I selected Automatic option to select the ViewController.swift file. And then I can able to take outlets.


M
Markus

None of this worked for me but I did figure this out.

Inside the storyboard I copied the corresponding ViewController into the clipboard and deleted it, afterwards I pasted it again.

Suddenly everything was working like a charm again!


r
roy

It happened when I added a Swift file into an Objective-C project .
So , in this situation what you can do is . .

Select MY_FILE.Swift >> Delete >> Remove Reference

Select MY_FOLDER >> Add MY_FILE.Swift

Voila ! You are good to go .


Up for this! I've been trying to solve this issue on my own for half an hour already lol. Problems like this in Storyboards are easy to fix though. Thanks! This helped me a lot!
A
Ahmed Abdallah

Simplest solution:- I used xCode 7 and iOS 9.

in your .m

delete #import "VC.h"

save .m and link your outlet again it work fine.


A
Ahmed Abdallah

I used xCode 7 and iOS 9.

in your .m

delete #import "VC.h"

save .m and link your outlet again it work fine.

in your .m

add #import "VC.h"

save .m