मैं संपर्कों के लिए जन्म डेटा प्राप्त करने का प्रयास कर रहा हूं लेकिन यदि उपयोगकर्ता वर्ष का चयन नहीं करता है या संपर्क फेसबुक से आता है और वर्ष या डेटा स्वयं छिपा हुआ है तो यह मुझे उस वर्ष के लिए "1604" मान देता है जिसे आप देख सकते हैं छवि में मेरा क्या मतलब है।एनएसडीएट सालाना मूल्य के लिए "1604" वापसी?
उत्तर
बधाई हो, आपने एक कार्यान्वयन विस्तार की खोज की है!
सबसे पहले, संपर्क स्टोर समय के साथ दिनांकों की तारीखें हैं, और एक वर्ष के बिना समय में एक बिंदु को स्टोर करना असंभव है, क्योंकि समय में हर बिंदु एक वर्ष है। इस प्रकार, एक निर्णय में पता होना चाहिए कि एड्रेस बुक एक तारीख में "अज्ञात" साल कैसे स्टोर करेगा। यह निर्णय लिया गया है कि "1604" एक अच्छा साल होगा, कई कारणों से:
- जब आप के बारे में पता पुस्तिका में बात कर रहे हैं, यह संभावना नहीं है कि आप अपनी पता पुस्तिका में किसी को जो 1604 में पैदा हुआ था होगा
- 1604 एक छलांग वर्ष था (लीप साल की गणना कैसे की जाती है) के नियमों के अनुसार, जिसका अर्थ यह है कि यदि जिस व्यक्ति का जन्म वर्ष आपको पता नहीं है वह 2 9 फरवरी को पैदा हुआ था, तो 1604 भी इसे संभाल सकता था।
- 1604 जूलियन-ग्रेगोरियन कैलेंडर स्विच से पहले था।
इस प्रकार, यदि आप एड्रेस बुक से जन्मदिन खींच रहे हैं, तो आपको "जन्मदिन जहां वर्ष अज्ञात है" के रूप में विशेष मामले 1604 की आवश्यकता होगी।
नोट: मेरे ज्ञान के लिए, यह ग्रेगोरियन कैलेंडर से निपटने के दौरान ही समर्थित है। अन्य सभी कैलेंडर के लिए, यह व्यवहार अपरिभाषित है।
आप viewDidLoad में साल init कर सकते हैं।
या जांचें कि वर्ष उपयोगकर्ता द्वारा वर्तमान त्रुटि संदेश नहीं चुना गया था या नहीं।
से भरने के लिए कहें ताकि मैं यह जांच सकूं कि यह प्रारूप "1604" के बराबर है या नहीं ,डेटाफॉर्मैट: @ "एमएम- डीडी " – Omarj
@ ओमार हां। उपयुक्त 'NSDateComponents' प्राप्त करने के लिए आप ग्रेगोरियन 'एनएससीएंडरडर 'का उपयोग करके वर्ष निकाल सकते हैं। –