La norme getter/setter kvo définit les getters sous la forme getPropertyName
. Si vous avez une propriété appelée gradePoints
, le compilateur interprétera getGradePoints
comme getter pour cette propriété et si la propriété n'est pas définie comme un double, elle se plaindra.
définissant Même une variable locale comme ceci:
double gradePoints = 0.0;
double other = [aCourse getGradePoints];
... peut confondre le compilateur car il peut essayer de traiter getGradePoints
comme getter pour gradePoints. Objective-C s'appuie sur les conventions de nommage pour trouver des types spécifiques de méthodes car il ne peut pas supposer au moment de la compilation quelles méthodes un objet dans une circonstance particulière aura.
En général, évitez d'utiliser des noms de méthodes commençant par «get» et «set» car le compilateur veut les traiter comme des méthodes getter et setter pour les propriétés. Le potentiel de confusion du compilateur est élevé.
J'essaie d'utiliser des préfixes comme "fetch", "grab", "obtenir" etc au lieu de "get" juste pour être sûr.
Cela semble être la seule explication raisonnable. –