मैं शुरुआत में एक विशेष बिंदु (स्क्रीन के बीच) में एक CGPoint प्रॉपर्टी सेट करना चाहता हूं। बाद में अन्य विधियां इस संपत्ति को बदलना चाहती हैं। मेरे विचार गेटटर में खाली होने पर इसे शुरू करना था, लेकिन मुझे संदेश को अमान्य अभिव्यक्ति के लिए अमान्य तर्क प्रकार 'संरचना CGPoint' मिलता है। मैंने संपत्ति == शून्य या 0 का उपयोग करने का भी प्रयास किया लेकिन कोई खुशी नहीं।मैं कैसे जांचूं कि एक CGPoint प्रारंभ किया गया है या नहीं?
किसी भी विचार?
-(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;
}
मुझे यह उत्तर बहुत पसंद है, क्योंकि ** {0.0, 0.0} ** वास्तव में एक मौजूदा और वैध समन्वय है। इसका उपयोग नल-पॉइंट के रूप में आपके प्रोग्राम तर्क को तोड़ सकता है। – Stas
CGPoint को -1 तक सेट करना, -1 अन्य सुझावों की तुलना में मेरे लिए कम हैकिश लगता है। एक अलग बुलियन वैरिएबल जोड़ना एक सिंगल प्वाइंट ऑफ ट्रुथ उल्लंघन की तरह लगता है - यदि यह वैरिएबल की स्थिति बदल जाती है तो यह गलत नहीं होगा। – arlomedia
शायद भयानक प्रोग्रामिंग, लेकिन यदि आप बेताब हैं तो आप हमेशा अपने CGPoint के समन्वय के रूप में {NAN, NAN} पास कर सकते हैं। – Tommyixi