पर एन्कोडिंग/डिकोडिंग CGFloat मैं 64-बिट में एक ऐप को काम करने के लिए परिवर्तित कर रहा हूं। ऐप्पल दस्तावेज़ बताते हैं कि CGFloat
प्रकार 32-बिट पर float
और 64-बिट पर double
है।32-बनाम 64-बिट
यदि ऐसा है, तो आप मूल्य के एन्कोडिंग/डिकोडिंग को कैसे प्रबंधित करते हैं? उदाहरण के लिए, को CGFloat
से बनाते समय, क्या मुझे -numberWithFloat:
या -numberWithDouble:
NSNumber की विधि का उपयोग करना चाहिए? एक ही प्रश्न NSCoder
और NSKeyedArchiver
विधियों -encodeFloat:forKey:
और -encodeDouble:forKey:
पर लागू होता है।
क्या मुझे एक सशर्त मैक्रो लिखना है ताकि 0 -को 64-बिट पर 32-बिट और -numberWithDouble:
पर कॉल किया जा सके?
क्या होता है यदि कोई ऐप के 64-बिट संस्करण को चलाने वाला कोई उपयोगकर्ता फ़ाइल सहेजता है जहां ये मान युगल के रूप में एन्कोड किए जाते हैं और फ़ाइल 32-बिट सिस्टम पर खोला/अनारक्षित हो जाती है?
CGFloats
का उपयोग करने वाले मेरे ऐप में सभी विधियों को double
के सटीक स्तर की आवश्यकता होने की संभावना नहीं है, तो क्या मुझे इसके बारे में भी चिंता करनी चाहिए?
बहुत धन्यवाद, जो चीजों को बहुत स्पष्ट करता है। –