Unknown class info in Interface Builder file

2019-06-16 02:10发布

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?

9条回答
疯言疯语
2楼-- · 2019-06-16 02:19

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.

查看更多
啃猪蹄的小仙女
3楼-- · 2019-06-16 02:21

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.

查看更多
萌系小妹纸
4楼-- · 2019-06-16 02:23

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.

查看更多
Explosion°爆炸
5楼-- · 2019-06-16 02:30

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 a Model.swift. This object was used in Interface Builder with the class = 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"

查看更多
Anthone
6楼-- · 2019-06-16 02:35

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

查看更多
太酷不给撩
7楼-- · 2019-06-16 02:39

Try this, in order:

  1. Product->Clean in Xcode
  2. Delete the app from the simulator or device
  3. Restart Xcode
  4. (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.

查看更多
登录 后发表回答