• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: A Data Object in Cocoa
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A Data Object in Cocoa


  • Subject: Re: A Data Object in Cocoa
  • From: "Adam Foltzer" <email@hidden>
  • Date: Fri, 9 Jan 2009 19:11:11 -0500

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 <email@hidden> 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 (email@hidden)
>
> 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:
>
> This email sent to email@hidden
>
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: A Data Object in Cocoa
      • From: Alastair Houghton <email@hidden>
    • Re: A Data Object in Cocoa
      • From: "Kyle Sluder" <email@hidden>
References: 
 >A Data Object in Cocoa (From: nik heger <email@hidden>)
 >Re: A Data Object in Cocoa (From: Ken Thomases <email@hidden>)

  • Prev by Date: Re: A Data Object in Cocoa
  • Next by Date: Re: A Data Object in Cocoa
  • Previous by thread: Re: A Data Object in Cocoa
  • Next by thread: Re: A Data Object in Cocoa
  • Index(es):
    • Date
    • Thread