Je voudrais initialement définir une propriété CGPoint à un point particulier (milieu de l'écran). D'autres méthodes peuvent ensuite souhaiter modifier cette propriété. Mes pensées étaient de l'initialiser si vide dans le getter, mais je reçois le type d'argument non valide 'struct CGPoint' en expression unaire. J'ai aussi essayé d'utiliser if property == nil ou 0 mais pas de joie.Comment vérifier si un CGPoint a été initialisé?
Des pensées?
-(CGPoint)graphOrigin
{
// initialise to centre of screen if has not been set
if(!_graphOrigin) // this expression is causing the problem
{
CGPoint origin = CGPointMake(self.bounds.origin.x + self.bounds.size.width/2, self.bounds.origin.y + self.bounds.size.height/2);
_graphOrigin = origin;
}
return _graphOrigin;
}
J'aime beaucoup mieux cette réponse, car ** {0.0, 0.0} ** est une coordonnée vraiment existante et valide. L'utiliser comme un point nul pourrait casser votre logique de programme. – Stas
Mettre le CGPoint à -1, -1 me semble moins hackish que les autres suggestions. L'ajout d'une variable booléenne distincte ressemble à une violation de point de vérité unique - elle donnera un résultat incorrect si elle n'est pas mise à jour chaque fois que l'état de la variable est modifié. – arlomedia
Programmation probablement horrible, mais si vous êtes désespéré, vous pouvez toujours passer {NAN, NAN} comme coordonnées à votre CGPoint. – Tommyixi