So I\'ve done some research into this issue, but I haven\'t found anything similar just yet...
So I\'m coding a game in Obj-C using Xcode and Sparrow Framework. I\'v
This can be caused by not including UIKit.
Add this to your header:
#include <UIKit/UIKit.h>
Also make sure to add the UIKit Framework to your project. (Targets/Build Phases/Link Binary With Libraries/ -- Select Add --- Add UIKit.Framework)
Try this instead for Cocoa or iOS app, make sure to import "Foundation/Foundation.h" in your class where you are inheriting NSObject class.
Try deleting the derived data for the project. You can do that through the organiser, under projects. You might have a corrupt precompiled header.
I faced a similar error, resolved it when I noticed I had done something remarkably stupid.
In my foo.m
file, I had forgotten to #import "foo.h"
The error got fixed when I added the import line.
Make sure that you don't use a Class Name that is already taken. I've had the same problem when i named one of my Classes "Signal", which is already part of Foundation.
Also make sure you're not including an Objective-C file from a .cpp
or .c
file.
Example: a PhotoManager.mm
might include the header file from the Objective-C pair PhotoObject.h
/PhotoObject.mm
.
Then, if MyAwesomeCppFile.cpp
includes PhotoManager.h
, suddenly PhotoObject.h
doesn't know the basic Objective-C classes and keywords.
A solution would be to use #ifdef __OBJC__
if you can get away with it.
Otherwise designate the .cpp
file type as Objective-C++ Source
in the file's properties panel (Top right window control => "Identity and type")