On Feb 21, 2009, at 17:12, Aaron Wallis wrote:

While that's always an option, it's not exactly the answer I was hoping to hear :D

The good news is I was able to recreate the file in a considerably smaller scale and have uploaded the source here: http://junk.isnot.tv/test.zip

As you can see, i've got two classes which include each others headers (since they need to call each others methods directly) I may be breaking some design patterns by doing this, and if so, please point them out - cause they could be the cause of the problem :D

There's obviously something basic i'm doing wrong, otherwise we'd be hearing about this issue all the time.

Nothing wrong, just failing to use @class for its intended purpose. :)

#import <Cocoa/Cocoa.h>
@class ControllerB;

@interface ControllerA : NSObject {
        ControllerB *myController;
        NSArray *fruit;
}

@property (readonly, getter=fruit) NSArray *fruit;
@property (retain) ControllerB *myController;

- (NSArray *)fruit;

@end

#import <Foundation/Foundation.h>
@class ControllerA;

@interface ControllerB : NSObject {
        ControllerA *delegate;
}

@property (retain) ControllerA *delegate;

- (void)doSomethingSpecialWithFruit;

@end

Note that you don't need to include either .h file in the other .h file, although you could if you had some other reason to, once you'd used @class to handle the forward-referencing problem caused by mutual class references.


_______________________________________________

Cocoa-dev mailing list ([email protected])

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