CGFloat* colors = CGColorGetComponents(hsbaColor.CGColor);
इस एक नाव, या तैरता की एक सरणी वापसी करता है? ऐसा लगता है कि एक सरणी बनाने के लिए तारांकन कम है। क्या वो सही है?
क्रमबद्ध करें।
CGFloat *colors
एक चरक को कम से कम एक CGFloat पर एक सूचक घोषित करता है। CGColorGetComponents
कई सीजीफ्लैट्स के लिए एक पॉइंटर देता है, एक दूसरे के बाद एक सी सरणी। आप उस पॉइंटर को लेते हैं और इसे colors
वैरिएबल (पॉइंटर में डाल दें) को असाइन करते हैं।
चर घोषित करने से सरणी बनाते हैं। वास्तव में, न तो CGColorGetComponents
करता है। जो भी बनाया गया CGColor ऑब्जेक्ट ने सरणी बनाई और इसे ऑब्जेक्ट के अंदर संग्रहीत किया; CGColorGetComponents
आपको उस भंडारण के सूचक होने देता है।
CGFloat *colors
वैरिएबल घोषित करने से केवल एक स्थान-चर-बनाता है-एक सूचक को एक या अधिक CGFloats में स्टोर करने के लिए। चर में चीज सूचक है, और उस सूचक पर चीज सरणी है।
यदि यह अभी भी अस्पष्ट है, तो Everything you need to know about pointers in C देखें।
स्रोत
2009-04-27 09:55:42
@htw धन्यवाद। क्या इसका मतलब यह हमेशा आरजीबीए है? मैंने एपीआई में कहीं भी एचएसबीए कलर स्पेस नहीं देखा है। –
हमेशा नहीं- उदाहरण के लिए सीएमवाईके या सफेद रंग स्थान में CGColor बनाया जा सकता था। हालांकि, ऐप्पल के रंग प्रोग्रामिंग दस्तावेज के अनुसार (http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/DrawColor/index।एचटीएमएल), एचएसबीए रंग अंतरिक्ष आरजीबीए रंग अंतरिक्ष के रूप में नामित किया गया है। तो, हाँ, इस मामले में, यह आरजीबीए घटकों को वापस कर देगा, क्योंकि रंग एचएसबीए घटकों के साथ बनाया गया था। – hbw
@htw धन्यवाद! मैं दस्तावेज़ों को देख रहा हूं। यह निश्चित रूप से मुझे खोजने के लिए जरूरी है। बहुत उपयोगी! –