В чем разница между использованием методов доступа obj-c и использованием синтаксиса точек?
С тех пор, как я начал разработку 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 ответа
Это не имеет значения, это одно и то же. Точечный синтаксис удобен для вас, и я чувствую, что он делает ваш код чище.
Единственный случай, когда я обнаружил, что использование точечного синтаксиса выдает предупреждение или ошибки от компилятора, это если у вас есть объект id, даже если вы знаете, что у него есть это свойство.
id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it
Тип объекта статически проверяется с помощью. синтаксис, но не с синтаксисом []. Это означает, что вы не можете использовать. если тип объекта не указан, и что его выгодно использовать, когда он есть, компилятор поможет вам больше.
Синтаксис точек в Objective-C по сути является сокращением для использования методов доступа. Сообщение по-прежнему отправляется через метод доступа. Надеюсь это ответит на твой вопрос