В чем разница между использованием методов доступа obj-c и синтаксиса точек? - PullRequest
0 голосов
/ 11 августа 2009

С тех пор, как я начал заниматься разработкой для iPhone, я был немного озадачен тем, какой способ доступа к данным является лучшим в классе.

Допустим, у меня есть класс с именем MyClass, и в нем есть:

@interface MyClass : NSObject {
    int myInt;
}

@property (nonatomic, assign) int myInt;

В реализации лучше сделать это:

myObject.myInt = 1;

Или это?

[myObject setMyInt:1];

Это относится и к чтению значения.

int newInt = myObject.myInt;

против

int newInt = [myObject myInt];

Ответы [ 3 ]

8 голосов
/ 11 августа 2009

Это не имеет значения, это одно и то же. Точечный синтаксис удобен для вас, и я чувствую, что он делает ваш код чище.

Единственный случай, когда я обнаружил, что использование синтаксиса точек выдает предупреждение или ошибки от компилятора, это если у вас есть объект id, даже если вы знаете, что у него есть это свойство.

id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it
2 голосов
/ 11 августа 2009

Тип объекта статически проверяется с помощью. синтаксис, но не с синтаксисом []. Это означает, что вы не можете использовать. если тип объекта не указан, и что его полезно использовать, когда он есть, компилятор поможет вам больше

0 голосов
/ 11 августа 2009

Синтаксис точек в Objective-C по сути является сокращением для использования методов доступа. Сообщение по-прежнему отправляется с помощью метода доступа. Надеюсь, что ответ на ваш вопрос

...