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]

Reply via email to