Стандарт kvo getter / setter определяет геттеры в виде getPropertyName
. Если у вас есть свойство с именем gradePoints
, компилятор будет интерпретировать getGradePoints
как получатель этого свойства, и если свойство не определено как double, он будет жаловаться.
Даже определение локальной переменной следующим образом:
double gradePoints = 0.0;
double other = [aCourse getGradePoints];
... может запутать компилятор, потому что он может попытаться обработать getGradePoints
как получатель для gradePoints.
Objective-C полагается на соглашения об именовании для поиска конкретных типов методов, потому что он не может предположить во время компиляции, какие методы будут иметь объект в определенных обстоятельствах.
В общем, вам следует избегать использования имен методов, которые начинаются с "get" и "set", потому что компилятор хочет рассматривать их как методы получения и установки для свойств. Вероятность путаницы с компилятором высока.
Я пытаюсь использовать префиксы, такие как «fetch», «grab», «get» и т. Д. Вместо «get», чтобы быть в безопасности.