> On Jun 3, 2015, at 11:30 AM, Mark Wright <blue.bucon...@virgin.net> wrote:
> 
> For what it’s worth, I’ve never had that problem either.  Most of the time 
> self.whatever is used for property access, _whatever is used for ivar access 
> and that’s about it.

Yup. This is what I meant about properties vs ivars being obvious from context: 
the only way to do a property access is by causing a message send; and there 
are only three direct ways to do that in Objective-C: somePointer.accessor 
(i.e, dot notation); [somePointer accessor] and [somePointer 
setAccessor:aNewValueGoesHere]; and a direct call to objc_msgSend(). 

All other forms are direct variable access: either globals, locals, or instance 
variables.

In other words:

@inteface foo : NSObject
        @property(nonatomic) int bar;
        -(void)doSomething;
@end

@implementation foo
{
        int bar;
};

-(int)bar
{
        return bar;
};

-(void)setBar:(int)new_BarValue
{
        bar=new_BarValue;
};

-(void)doSomething
{
        bar=12345;              // Direct access to bar

        self.bar=12345  // Going thru the property’s setter
        [self setBar:6789];
        if([self bar]==6789)
                puts(“Yay, it’s still what I set it to!\n”);

        int baz;                        // Obviously a local

        baz=123                 // Direct access
        
        self.baz=456;           // Compile error here; because baz is a local, 
not a property. Other obvious error patterns left as an exercise for the 
reader. :-)
};

@end

// Note: thoroughly compiled and tested in Mail.app ;-) 
_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to