Qual é a diferença entre usar acessadores obj-c e usar a sintaxe de pontos?

Desde que comecei o desenvolvimento do iPhone, fiquei confuso sobre qual é a melhor maneira de acessar dados como membro de uma classe.

Digamos que eu tenha uma classe chamada MyClass, e nela eu tenho:

@interface MyClass : NSObject {
    int myInt;
}

@property (nonatomic, assign) int myInt;

Na implementação, é melhor fazer isso:

myObject.myInt = 1;

Ou isto?

[myObject setMyInt:1];

Isso vale para ler o valor também.

int newInt = myObject.myInt;

vs.

int newInt = [myObject myInt];

questionAnswers(3)

yourAnswerToTheQuestion