views:

127

answers:

3

Since I've started on iPhone development I've been kinda confused as to which is the best way to access data as a member in a Class.

Let's say I have a class called MyClass, and in it I have:

@interface MyClass : NSObject {
    int myInt;
}

@property (nonatomic, assign) int myInt;

In the implementation, is it better to do this:

myObject.myInt = 1;

Or this?

[myObject setMyInt:1];

This goes for reading the value too.

int newInt = myObject.myInt;

vs.

int newInt = [myObject myInt];

Thanks for your help!

A: 

Dot syntax in Objective-C is essentially shorthand for using the accessor methods. The message is still sent via the accessor method. Hope that answers your question

CarbonX
+6  A: 

It doesn't really matter, they are the same thing. The dot syntax is a convenience that's there for you to use, and I feel like it makes your code cleaner.

The one case where I find that using the dot syntax throws warning or errors from the compiler is if you have have an id object, even if you know it has that property.

id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it
Neil Daniels
+1  A: 

The type of the object is statically checked with the . syntax, but not with the [] syntax. This means you can't use . if the object's type isn't specified, and that it is beneficial to use it when it is, so the compiler will help you more.

Drew Hoskins