यह एक उत्तर से अधिक टिप्पणी है हालांकि मेरे पास वर्तमान में टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है।
मैं सिर्फ CGFLOAT_MAX उपयोग करने के साथ अनपेक्षित व्यवहार में आए: एक iPhone 5 एस (64 बिट) डिवाइस iOS 7.1.2 चल रहा है और Xcode 5.1.1 का उपयोग करने पर, निम्न कोड:
CGFloat numRot = floorf(CGFLOAT_MAX/360.0);
NSLog(@"numRot = %.2f", numRot);
आउटपुट:
numRot = inf
जबकि
, इस कोड:
CGFloat numRot = floorf(FLT_MAX/360.0);
NSLog(@"numRot = %.2f", numRot);
सही ढंग से आउटपुट:
numRot: 945228740662580166143622731901435904.00
मैं आदेश + CGFLOAT_MAX पर क्लिक किया और Xcode मुझे CoreGraphics पर उतर आए CGBase.h निम्नलिखित मैक्रो परिभाषा के साथ फाइल चौखटे:
# define CGFLOAT_MAX DBL_MAX
मैं आदेश + CGFloat और Xcode पर क्लिक किया मुझे एक और करने के लिए ले लिया एक ही फाइल में लाइन:
typedef CGFLOAT_TYPE CGFloat;
तब मैं कमान + CGFLOAT_TYPE पर क्लिक किया और इसे यहाँ #define लाइन के लिए कूद गया:
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
...
तो, किसी कारण से मेरे CGFloat चर को डबल होना चाहिए, हालांकि ऐसा लगता है कि यह एक फ्लोट होता है जब इसे डबल मान असाइन किया जाता है (यानी। CGFLOAT_MAX)। जहां तक मैं this Apple documentation page बता सकता हूं कि एनएसएलओजी के साथ% f का उपयोग करना डबल प्रिंट करना चाहिए - अगर कोई गलत है तो कृपया मुझे सही करें।
यह कहने के लिए कि यदि FLT_MAX आपके मामले के लिए काम करता है, तो आप CGFLOAT_MAX के बजाय इसके लिए इसके साथ रहना चाहेंगे, खासकर यदि आप ऐसी लाइब्रेरी पर भरोसा कर रहे हैं जो विशेष रूप से डबल या CGFloat के बजाय फ़्लोट तर्क स्वीकार करता है।
स्रोत
2014-07-09 16:12:09
@answers: everyone..considering upvoted वे 4 के भीतर हैं एक दूसरे के सेकंड हां। –
शायद आपको यहां पोस्ट करने के बजाय इस तरह के प्रश्न के लिए दस्तावेज़ों की जांच करने के लिए कम समय लगेगा। –
@ जोश कैसवेल: मुझे लगता है कि बहुत से लोग दस्तावेज मौजूद नहीं हैं (कम से कम कुछ हिस्सों) दस्तावेज मौजूद हैं। इस मामले में, UIKit CGFloat का उपयोग पूरी तरह से करता है, इसलिए प्रश्नकर्ता ने केवल UIKit दस्तावेज़ों में देखा होगा। @ मिखालो इवानोकोव, आपको कोर ग्राफिक्स (सीजी) दस्तावेज़ों की आवश्यकता है: http://developer.apple.com/library/ios/documentation/CoreGraphics/Reference/CoreGraphics_Framework/ ऐप्पल की ऑनलाइन प्रलेखन खोज भी उपयोगी है (जो मेरे पास है एक्सकोड के मुकाबले बेहतर पाया गया है, या इस उद्देश्य के लिए, Google): http://developer.apple.com/library/ios/search/?q=CGFloat+max –