Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unknown class in Interface Builder file [duplicate]

I created a fairly simple iPhone app. Then figured I'd create an iPad version (Universal) of the app. Tried using the 'upgrade' option and that didn't work-out. So I created a separate universal app and copied the xib files into my project. That didn't work out either, so I deleted the xib files (and their associated .m & .h files.

Now, when I run the iPhone version it gives me the Unknown class iPadSample1AppDelegate in Interface Builder file. error and UISplitViewController is only supported when running under UIUserInterfaceIdiomPad and then it exits. So, I restored to the snap-shot I took before embarking on the iPad adventure... I get the same error. I've tried the XCode search and Spotlight search. There is no reference to that class or the UISplitViewController anywhere in my project, but for some reason XCode thinks that there is.

Is there some way to remove a reference that doesn't exist? LOL

Update:

It may have something to do with my XCode environment being jacked. After finding a few other posts on here, I tried a Clean All / Build / Touch and when I did the touch, I got the following error in XCode:

Uncaught Exception:

-[XCBuildLogWarningMessage setFileLocations:]: unrecognized selector sent to instance 0x2014dd0a0

Anyway to reinstall XCode without messing up everything else?

like image 682
tg2 Avatar asked Aug 05 '10 15:08

tg2


5 Answers

It turns out the bits on the iPhone simulator were out of sync with XCode. I did a 'Reset Content and Settings' and everything works :) Who knew?

like image 156
tg2 Avatar answered Nov 04 '22 10:11

tg2


If you go to Build Phases within your targets you will see Compile Sources. Make sure each of the m files you need are listed. If not, just add it here and the warning should go away.

like image 31
embinder Avatar answered Nov 04 '22 11:11

embinder


I did some research and found out that

for my case

I just need to right click to complaining file in the Project Navigator.

Choose View/Utilities/Show File Inspector. And for some reason the Target Membership was not selected.

That's why the linker says that it doesn't know the existence of the class.

I just ticked to choose it and everything works like a charm.

like image 7
harryngh Avatar answered Nov 04 '22 10:11

harryngh


Right click on Storyboard --> Open As --> Source Code

Find your unknown class name in the storyboard source file. It may be because you have accidentally assigned a custom class name for one of your UIView subclass'.

like image 7
user1685442 Avatar answered Nov 04 '22 11:11

user1685442


I had this same problem but it was not solved by the solution above. I ended up getting it working by removing the "Main storyboard file base name (iPad)" entry from my info.plist file.

like image 1
Swindler Avatar answered Nov 04 '22 09:11

Swindler