Re: A Data Object in Cocoa
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