On Mon, May 25, 2009 at 12:51 AM, Chunk 1978 <[email protected]> wrote: > i'm following a tutorial that lists the header file like this: > > > -=-=-=-=- > @interface PickersAppDelegate : NSObject <UIApplicationDelegate> > { > IBOutlet UIWindow *window; > IBOutlet UITabBarController *rootController; > } > > @property (nonatomic, retain) UIWindow *window; > @property (nonatomic, retain) UITabBarController *rootController; > -=-=-=-=- > > > but IB automatically sets the IBOutlet as part of the @property and > not in the declaration struct like this: > > > -=-=-=-=- > @interface PickersAppDelegate : NSObject <UIApplicationDelegate> > { > UIWindow *window; > UITabBarController *rootController; > } > > @property (nonatomic, retain) IBOutlet UIWindow *window; > @property (nonatomic, retain) IBOutlet UITabBarController *rootController; > -=-=-=-=- > > > is there a difference? which one should be used?
No difference. Use whatever makes you happy. IBOutlet is just a hint to help Interface Builder parse your header. It literally does nothing when the code is actually compiled: IBOutlet is #defined to nothing. > also, just to clear > things up for me a bit, is it safe to assume that everything listed in > the declaration struct should also have getter and setter methods with > @property/@synthesize? Not at all. The stuff that's "listed in the declaration struct" (which it's not, but I get what you mean) are called instance variables, and even though they appear in the header you should treat them as an implementation detail of your class. @property, on the other hand, is part of your class's public interface. A @property may well be implemented in terms of an instance variable (and that's exactly what @synthesize accomplishes), but it doesn't have to be. And going the other way, an instance variable doesn't need to have a @property and in fact frequently doesn't, as instance variables are often used for purposes which need no exposure to any code outside that class. Mike _______________________________________________ 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]
