I've noticed a pattern in some Apple code where the instance variables are
all prefixed with an underscore, but the property name, and therefore the
accessors, are what you'd expect. This leaves you free to use the same name
for arguments. To make the property point to the right variable, use an =
after the synthesize statement:

@interface MyObj
{
    int _foo;
}

@property (readwrite, assign) int foo;

@end



@implementation MyObj

@synthesize foo = _foo;

- (id)initWithInt:(int)foo
{
    if (![super init])
        return nil;
    [self setFoo:foo];
    return self;
}

@end

Cheers,
Adam

On Fri, Jan 9, 2009 at 6:47 PM, Ken Thomases <k...@codeweavers.com> wrote:

> On Jan 9, 2009, at 1:49 AM, nik heger wrote:
>
>  - (id)initWithLabel:(NSString *)label pin:(NSString *)pin seed:(NSString
>> *)seed {
>>        if (self = [super init]) {
>>                self.label = label; ///<----------- compiler complains
>>                self.pin = pin;
>>                self.seed = seed;
>>        }
>>        return self;
>> }
>>
>> I get three warnings that say "local declaration of x overrides instance
>> variables. I thought I could differentiate between the parameters and the
>> instance variables using self.variable vs just variable.
>>
>
> The ambiguity isn't on the left side of the assignment.  That is clear
> enough with the dot syntax.  The problem is on the right side, where a
> plain, unadorned "label" could be an attempt to reference the parameter or
> the instance variable.
>
> Dot syntax is one way of accessing your properties, but not the only way.
>  The lack of dot syntax doesn't make an identifier fail to match an instance
> variable.
>
> Regards,
> Ken
>
>
> _______________________________________________
>
> 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/acfoltzer%40gmail.com
>
> This email sent to acfolt...@gmail.com
>
_______________________________________________

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 arch...@mail-archive.com

Reply via email to