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