Tuesday, 15 July 2014

objective c - How to write Init method in Swift -


मुझे init विधि swift में लिखना है, यहाँ मैं दिया NSObject मॉडल वर्ग में Objective-C

  - (id) initWithNewsDictionary: (NSDictionary *) शब्दकोश {self = [super init]; अगर (स्वयं) {self.title = शब्दकोश [@ "शीर्षक"]; Self.shortDescription = शब्दकोश [@ "विवरण"]; Self.newsDescription = शब्दकोश [@ "सामग्री: एन्कोडेड"]; Self.link = शब्दकोश [@ "लिंक"]; Self.pubDate = [आत्म मिलना: शब्दकोश [@ "पबडेट"]]; } स्वस्थ वापसी; }  

मैं इस पद्धति को swift में कैसे लिख सकता हूँ

यह आपके वर्ग के लिए अच्छा आधार हो सकता है, मुझे लगता है:

  वर्ग MyClass {// आपको अपने प्रकार की सामग्री के शीर्षक के अनुसार उचित प्रकार सेट करना पड़ सकता है : स्ट्रिंग? Var shortDescription: स्ट्रिंग? Var समाचारविवरण: स्ट्रिंग? Var लिंक: एनएसयूआरएल? Var pubDate: NSDate? // init () {// यदि आपकी कक्षा को किसी भी अन्य वर्ग // सुपरएयर.init ()} // सुविधा init (_ dictionary: dictionary & lt; स्ट्रिंग, किसी भी ऑब्जेक्ट & gt;) से प्राप्त किया गया है, तो इस लाइन को रद्द करें {self.init () शीर्षक = शब्दकोश ["शीर्षक"] के रूप में? NSString shortDescription = dictionary ["shortDescription"] के रूप में? NSString newsDescription = dictionary ["newsDescription"] के रूप में? NSString link = शब्दकोश ["लिंक"] के रूप में? NSURL pubDate = self.getDate (शब्दकोश ["pubDate"])} // func getDate (वस्तु: AnyObject?) - & gt; NSDate? {// एक तिथि के रूप में ऑब्जेक्ट को पार्स करें और अपनी इच्छा के लिए अगली पंक्ति को प्रतिस्थापित करें ... वस्तु के रूप में वापसी करें? एनएसडीट}}  

उन्नत-मोड

मैं किसी प्रोजेक्ट में चाबियाँ कॉपी-पंड-पेस्ट करने से बचाना चाहूंगा, इसलिए मैं संभव कुंजी को इसमें डालूंगा जैसे एक enum इस तरह से:

  enum MyKeys: Int {केस कीटिटल, कुंजी शॉर्ट डिस्क्रिप्शन, कुंजी न्यूजडिस्क्रिप्शन, कीलिंक, KeyPubDate func toKey () - & gt; स्ट्रिंग! {स्विच स्व {मामला। केलिंक: वापसी "शीर्षक" मामला। केन्यूज विवरण: रिटर्न "न्यूज़ डिस्क्रिप्शन" मामला। केपबडेट: रिटर्न "पबडेट" केस .कीशर्लेखन: वापसी "संक्षिप्त विवरण" मामला। }}  

और आप अपने सुविधा init (...) विधि को बेहतर कर सकते हैं जैसे कि यह, और भविष्य में आप अपने कोड में कुंजी के किसी भी संभावित गलत टाइपिंग से बच सकते हैं:

  सुविधा init (_ शब्दकोश: शब्दकोश & lt; स्ट्रिंग, किसी भी ऑब्जेक्ट & gt;) {self.init () title = शब्दकोश [MyKeys.KeyTitle.toKey ()] के रूप में? NSString shortDescription = शब्दकोश [MyKeys.KeyShortDescription.toKey ()] के रूप में? NSString newsDescription = शब्दकोश [MyKeys.KeyNewsDescription.toKey ()] के रूप में? NSString लिंक = शब्दकोश [MyKeys.KeyLink.toKey ()] के रूप में? NSURL pubDate = self.getDate (शब्दकोश [MyKeys.KeyPubDate.toKey ()]}}  

नोट: यह केवल एक कच्चा विचार है कि आप इसे कैसे कर सकते हैं, यह है सम्मेलन में प्रारंभिक रूप से उपयोग करने के लिए आवश्यक नहीं है, लेकिन यह स्पष्ट विकल्प था कि मैं अपने अंतिम वर्ग के बारे में कुछ नहीं जानता - आपने एक ही विधि साझा की है।


No comments:

Post a Comment