2015-09-17 13 views
8

मैं स्विफ्ट 2 के लिए एक संक्रमण मार्गदर्शिका का पता लगाने की कोशिश कर रहा हूं, विशेष रूप से डेवलपर्स को स्विफ्ट 1/1.2 कोडबेस को स्विफ्ट 2 पर माइग्रेट करते समय अवगत होना चाहिए। जाहिर है आपके पास एक्सकोड में माइग्रेशन सहायक है, लेकिन केवल वास्तव में कवर गधे का काम और सामान नहीं जो थोड़ा और बुद्धिमान विचार की आवश्यकता है।बेवकूफ स्विफ्ट 2 (एकेए जहां स्विफ्ट 2 संक्रमण गाइड है) में माइग्रेट करने के लिए चेकलिस्ट?

संसाधनों मैं स्विफ्ट 2 पर मिल करने में सक्षम था के आधार पर, मैं एक साथ निम्नलिखित चेकलिस्ट तैयार की है:

  • ट्राई/कैच/फेंक त्रुटि निवारण - वसूली योग्य त्रुटियों के लिए इस्तेमाल किया जा करने के लिए; तदनुसार त्रुटि हैंडलिंग कोड संशोधित करें। विशेष रूप से, NSError के सभी उपयोगों की जांच करें और पुनर्प्राप्ति योग्य त्रुटियों की रिपोर्ट करने के लिए प्रतिनिधियों को वापस कॉल करें।
  • enumsErrorType के अनुरूप अपनी स्वयं की सार्थक त्रुटियों को परिभाषित करने के लिए उपयोग करें।
  • नए प्लेटफार्म एपीआई तक पहुंचने के लिए # उपलब्ध का उपयोग करें - एप परिनियोजन लक्ष्य के खिलाफ एपीआई उपयोग की जांच करें और
  • प्रोटोकॉल एक्सटेंशन - पुन: उपयोग में सहायता के लिए जितना संभव हो उतना कोड ले जाएं। प्रोटोकॉल एक्सटेंशन में विशेष रूप से रिफैक्टर ग्लोबल फ़ंक्शंस।
  • nullability एनोटेशन & जेनरिक - अनावश्यक वैकल्पिक बाइंडिंग और प्रकार कास्टिंग को दूर
  • गुंजाइश और बड़े जल्दी
  • ले जाएँ वर्ष do { ... } while छोरों repeat { } को (अस्पष्टता को हटा दें और पठनीयता में सुधार करने के लिए) संसाधनों
  • उपयोग guard नियंत्रित करने के लिए उपयोग do { } जल्दी लौटने और अत्यधिक इंडेंटेशन से बचने के लिए
  • क्लोजिंग फाइल आदि जैसे क्लीनअप कोड के लिए defer का उपयोग करें
  • विकल्प सेट चूहे का उपयोग करें मूल्यों को एक साथ करने के बजाय (उदा। viewAnimationOptions = [.Repeat, .CurveEaseIn, .TransitionCurlUp])
  • समीक्षा public एक्सेसर विनिर्देशक जिन्हें पहले परीक्षण का समर्थन करने के लिए आवश्यक था। इसके बजाय @testable और import MyApp का उपयोग करें।
  • ले जाएँ एकल मामला नई if case .MyEnumCase(let value) = bar() where value != 42 { doThing(value) }
  • उपयोग करने के लिए switch बयान को छानने के लिए "... में" for जैसे if छानने बयान युक्त छोरों को साफ करने के for value in mySequence where value != "" { }
  • सी समारोह संकेत के लिए देशी समर्थन - बंद या वैश्विक कार्य (स्थानीय संदर्भ पर कब्जा नहीं है जब ऐसा करने से)
  • किसी भी नए चलो/var चेतावनी
  • किसी भी अप्रयुक्त चर चेतावनी
  • Failable initializers को ठीक ठीक उपयोग करते हुए प्रदान super.init को कॉल करने से पहले अब शून्य वापस कर सकते हैं - आवश्यक किसी भी पिछले कामकाज को हटा दें। हालांकि नामित प्रारंभकर्ताओं को अभी भी सभी संग्रहित गुणों को शून्य वापस करने से पहले प्रारंभ करना होगा।

सूत्रों का कहना है:

https://developer.apple.com/swift/blog/?id=29

https://developer.apple.com/swift/

https://developer.apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html#//apple_ref/doc/uid/TP40001051-CH5-SW1

https://developer.apple.com/videos/wwdc/2015/?id=106

http://www.raywenderlich.com/108522/whats-new-in-swift-2

मुझे क्या याद आया?

समस्या का एक हिस्सा यह है कि स्विफ्ट 2 ने पिछले डब्ल्यूडब्ल्यूडीसी को विकसित करना जारी रखा है। तो इस वर्ष के डब्ल्यूडब्ल्यूडीसी वीडियो पहले से ही संभावित रूप से पुराने हैं, या कम से कम पूरी कहानी नहीं हैं।

+2

[स्विफ्ट प्रोग्रामिंग भाषा] के लिए संशोधन इतिहास (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/RevisionHistory.html#//apple_ref/doc/uid/TP40014097- सीएच 40-आईडी 45 9) और [कोको और उद्देश्य-सी के साथ स्विफ्ट का उपयोग करना] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/RevisionHistory.html#//apple_ref/doc/uid/ टीपी 40014216-सीएच 14-आईडी 142) विस्तृत परिवर्तनों को देखने के लिए अच्छी जगह भी हैं। –

+1

कुछ और बदलाव हैं। अधिकांश वैश्विक कार्य अब उदाहरण विधियां बन गए हैं, स्ट्रिंग अब संख्यात्मक नहीं है, कुछ विधियों और प्रोटोकॉल का नाम बदल दिया गया है। 1.2 और 2.0 के बीच परिवर्तन देखने के लिए एक अतिरिक्त अच्छा संसाधन http://swiftdoc.org है। – MirekE

उत्तर

1

दुर्भाग्यवश, इस समय ऐप्पल से कोई आधिकारिक "संक्रमण मार्गदर्शिका" नहीं है।

The Swift Programming Language (Swift 2) हमेशा ऐप्पल द्वारा अपडेट किया जाता है जब भी वे स्विफ्ट का एक नया संस्करण जारी करते हैं और इसलिए स्विफ्ट 2 (या बाद में) के बारे में अद्यतित जानकारी के लिए सबसे अच्छे स्रोतों में से एक है। पूरी भाषा के बहुत सारे स्पष्टीकरण और उदाहरण कोड हैं, केवल परिवर्तन ही नहीं, लेकिन यह निश्चित रूप से कम से कम उस जानकारी के सर्वोत्तम स्रोतों पर है जो आप अभी खोज रहे हैं।

संबंधित मुद्दे