On 18/03/2008, at 6:32 PM, Scott Squires wrote:


I'm starting to go in circles at this point.
I know I've got a number of interconnecting files.
Since I was getting errors I replaced the #import as much as possible with @class defines

I'm still getting the following error:
error: syntax error before 'AT_NAME' token

This indicates @class myClass; in the following examples.
Most of these work fine but if I end up swapping #import instead then other areas break the compiler.

Any suggestions on areas to look at (missing @end or something else?)

Thanks.

example:

#import <stdStuff/stdStuff.h>
@class myClass;

@interface anotherClass : NSObject
{

        myClass *theMyClassObject;

}

@end

Hi Scott,

The @class MyClass; declaration is a forward declaration to tell the compiler that MyClass is, in fact, a valid type that you define elsewhere (ie, in it's .h and .m files). You only need to do it in a header file of another class which makes use of your MyClass as an instance variable.

The #import "MyClass.h" is a preprocessor macro which will, as it's name suggests, import the contents of that file into whatever file in which it appears.

So, make sure you only have @MyClass declarations in header files of classes in which you need a MyClass type instance variable, and then #import "MyClass.h" into that class's implementation (.m) file. You would do this for every class which requires an instance of MyClass in it. Do this and you should be sweet.

By the way, it's the convention to name classes with an initial capital. Otherwise they are easy to confuse with instance variables.

MyClass *myClassIvar = [[MyClass alloc] init];

HTH,

Ron
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to