问题
like in the title i got a crazy massage and i cannot handle with it
Unknown class info in Interface Builder file.
Every time I run my Project some crazy bugs will appear or some bars disappear. Did anyone know what to do?
回答1:
Try this, in order:
- Product->Clean in Xcode
- Delete the app from the simulator or device
- Restart Xcode
- (Build &) Run again
If this doesn't help, you likely have a reference to a class in the nib or storyboard that you have to manually find and remove.
回答2:
The warning may be because you have assigned a removed/deleted custom class name for one of the UIView subclass. In order to fix such scenarios,
Open interface builder class as Source Code by right clicking on it (Open As -> Source Code).
Find your unknown class name in the source file. And handle accordingly.
It worked for me.
回答3:
See my answer to https://stackoverflow.com/a/29013058/784318
I did run into this problem today using Swift.
I changed a class
Model.h + Model.m
to aModel.swift
. This object was used in Interface Builder with theclass = Model
.As soon as I replaced the object the class could no longer be loaded.
What I had to do was to change the class reference in IB from:
Class = Model Module =
to
Class = Model Module = <TARGETNAME>
You'll find the
<TARGETNAME>
in the build settings. It is also the name that shows up in your generated Swift-Header:#import "TARGETNAME-Swift.h"
回答4:
I have solved this problem (while using Swift 4 / Xcode 10.1) by going to Custom Class panel, checking 'Inherit Module From Target' (right below Class & Module row).
回答5:
I have got the same issue with Lottie library.
Unknown class AnimationView in Interface Builder file.
It can happens if your class view is in an other module.
To resolve this, go in your IB file (Xib or storyboard) / Show the identity inspector and set correctly the module :
回答6:
I tend to see these types of errors when you change the name of your view and view controller classes after customizing a view or controller in Interface Builder to that class. I'd go through your views and controllers in your nib or storyboard to see if your custom classes still exist and match accordingly.
You'll run into issues with IB files when you rename or delete the underlying code without updating the IB file. A similar issue occurs when deleting or changing the name of IBOutlets after linking them to an object in Interface Builder. You'll still have the reference in Interface Builder unless you delete it explicitly.
Lastly, you can look at the IB file as a text file. It's an xml document, where you'll see all the class references. You can see if there are any classes there that may not exist in your project anymore.
回答7:
This also happens if you deleted ClassName.m from Build Phases/Compile Sources
回答8:
I'll restate the problem, with a bit of context from my end, then provide the solution:
I have created a custom Swift framework, and imported the framework project into the workspace. Then, I made the framework a target dependency to my Swift application. Finally, I referenced a class from the framework in Interface builder.
I kept getting the class not found error, and I noticed in the debugger it had the output class was the mangled/unmangled ObjC counterpart ..
The solution:
Simply add your framework header to your ObjC bridging header:
#import <MazKit/MazKit-Swift.h> // In my case, MazKit
Now, the symbols are exported, and you can verify that by cmd + click on the header itself, and you'll see the mangled/unmangled class names.
回答9:
Project -> General -> Deployment Info -> Main Interface <- clear this field.
It seems you have deleted file Main (Storyboard) but you still have reference to it in project properties.
回答10:
It could be that the file was not copied over in the build process. Goto the Build Phases Tab and check the copy Bundle resources to see if the file is there. If not add to the project clean and rebuild to see if that fixes your issue. This has helps me.
来源:https://stackoverflow.com/questions/14881355/unknown-class-info-in-interface-builder-file