2014-12-06 4 views
33

में स्विफ्ट प्रोटोकॉल विधियों को स्वचालित करें मैंने अभी तेज भाषा के साथ शुरुआत की और जावा से आने से यह बहुत अच्छा लग रहा है। लेकिन मुझे वास्तव में कुछ याद आ रहा है:एक्सकोड

ग्रहण में यह शानदार विशेषता थी कि जब मैंने "XYZ लागू किया" तो यह मुझे आवश्यक फ़ंक्शन स्टब्स को स्वचालित रूप से कार्यान्वित करने के लिए एक फ़ंक्शन प्रदान करता था। यह एक बड़ा टाइमवेवर है।

एक्सकोड में यह सुविधा प्रतीत नहीं होती है, या क्या मुझे कुछ याद आ रही है?

मैं accessorize प्लगइन पाया, लेकिन यह केवल उद्देश्य सी के साथ काम करने लगता है ..

वहाँ एक समाधान है?

पीएस। मैं XCode 6.1.1 का उपयोग कर रहा

+2

ऐपकोड आईडीई आज़माएं। इसमें बहुत उपयोगी घंटी और सीटी हैं जो एक्सकोड से गायब हैं। इसमें ग्रहण सुविधा है जिसका आप उल्लेख करते हैं। –

+0

अभी भी क्या गुम है (अब एक्सकोड 8) प्रत्येक आवश्यकता के शब्द का अनुमान लगाए बिना प्रोटोकॉल कार्यान्वयन को स्वत: पूर्ण करने के लिए 'ग्रहण' विकल्प है। आश्चर्यजनक रूप से, ज्ञात लोगों पर, यह एक मुद्दा से कम है, लेकिन अन्यथा, किसी को प्रोटोकॉल पर वापस फ़्लिप करना होगा और यह पता लगाना होगा कि संकलक अभी भी किसके बारे में शिकायत कर रहा है। ऐप्पल को एक एक्सकोड सुविधा अनुरोध भेजने के लिए सुझाव। – bauerMusic

+0

असल में मुझे प्रत्येक प्रोटोकॉल के लिए एक फाइल बनाना है और कार्यों को बाहर करना है .. लोगों को जाने का तरीका। एक्सकोड 9 परिवर्तन काम नहीं करता है जैसे आप उम्मीद करेंगे। ऐसा लगता है कि एक्सकोड देव अपने व्यक्ति का उपयोग करने वाले व्यक्ति को दंडित करके अंतर करने की कोशिश कर रहे हैं। या तो, या जेटब्रेन उन्हें एपकोडिंग कॉम्प्लेक्स ऑपरेशंस की पेशकश न करने के लिए ऐपकोड पैसों के साथ भुगतान कर रहे हैं जैसे: डुप्लिकेट लाइन, और, पाठ्यक्रम हटाएं लाइन –

उत्तर

14

Xcode 9

Xcode 9 अब एक "इसे ठीक" के माध्यम से प्रोटोकॉल तरीकों के अनुरूप समर्थन करता है। यह स्वचालित रूप से आपके लिए अनुपलब्ध विधियों को भर देगा। इस WWDC 2017 में

घोषणा की गई थी

enter image description here

अद्यतन: यह, दुर्भाग्य से आप द्वारा परिभाषित प्रोटोकॉल के लिए काम करने के लिए प्रतीत नहीं होता।

+3

अंत में! वह लंबे समय से अतिदेय था! वास्तव में – user3207838

+3

। हुर्रे! –

+0

दुर्भाग्य से सभी प्रोटोकॉल के लिए उपलब्ध नहीं है, 'संग्रह' उनमें से एक है, बग शायद? – valcanaia

22

एनबी: इस उत्तर संस्करण 9 से पहले Xcode के लिए सच है; संस्करण 9 में ऐप्पल ने लापता प्रोटोकॉल विधियों को स्वचालित रूप से ठीक करने की क्षमता को जोड़ा; Guy Daher's answer देखें।

मैं सिर्फ एक iOS प्रोजेक्ट बनाया, और मेरे UIViewController.swift फ़ाइल में नेतृत्व किया। वहाँ मैं ने घोषणा की कि यह UITableViewDelegate कार्यान्वित:

class ViewController: UIViewController, UITableViewDelegate { 

अब जब मैं कक्षा के शरीर में जाते हैं, और टाइप करना आरंभ करें "टैब ...", मैं उचित स्वत: पूर्णताओं देखें:

Xcode autocompletions

मारना दर्ज करें, फिर कर्सर को कोड के लिए तैयार रखने के साथ फ़ंक्शन स्टब डालें।

यह एक्सकोड स्वत: पूर्ण प्रोटोकॉल (या विरासत वर्ग विधियों) का तरीका है। यदि आप सभी को एक साथ करना चाहते हैं, तो मुझे नहीं लगता कि यह संभव है, दुख की बात है। लेकिन आप कर सकते हैं हमेशा Cmd क्लिक करें या विकल्प - Cmd क्लिक करें प्रोटोकॉल नाम पर (जो एक माध्यमिक संपादक विंडो का उपयोग करता है) अपनी परिभाषा है, जो मूल रूप से अपने सभी तरीकों आप कॉपी कर सकते हैं और की एक सूची है पर जाने के लिए अपने कोड में पेस्ट करें। आपको वहां से थोड़ा साफ करने की ज़रूरत होगी, लेकिन ज्यादा नहीं।

+0

क्या आप उस स्वत: पूर्ण दृश्य को विस्तारित करने के किसी भी तरीके से जानते हैं ताकि आप संपूर्ण विधि हस्ताक्षर देख सकें? – chrisortman

+0

या आप जानते हैं कि टाइपिंग को आगे कैसे रखना है उदा। स्वत: पूर्णता काम करने में असफल होने के बिना tableView? मुझे उदाहरण के लिए कोई रास्ता नहीं मिला है तालिका देखें टाइप करें: उचित विधि में सूची के अंत तक कूदने के लिए ... चुनें ... चुनें। आपके पास हमेशा सभी तालिका दृश्य-प्रासंगिक विधियों की पूरी सूची होती है और उन्हें अंत तक स्क्रॉल करना पड़ता है ... – marsbear

+0

यह समाधान XCode 7.3 या 7.0 – andrewz

1

एक्सकोड 9, स्विफ्ट डेटासोर्स & प्रतिनिधियों के अनिवार्य तरीकों के कार्यान्वयन का ख्याल रखता है।

इन स्नैपशॉट पर देखो, UICollectionViewDataSource के उदाहरण के साथ:

चेतावनी का संकेत प्रोटोकॉल तरीकों को लागू करने:

enter image description here

'फिक्स' बटन पर क्लिक करके, यह सभी अनिवार्य तरीकों जोड़ा गया है:

enter image description here