2014-07-02 7 views
32

को हटाने/नाम बदलने के लिए "सही" तरीका स्विफ्ट के माध्यम से काम कर रहा हूं, इसलिए मैं एक्सकोड में नया हूं, इसलिए मुझे यकीन नहीं है कि मैं जो लिख रहा हूं वह वास्तव में एक बग है।एक्सकोड इंटरफेस बिल्डर - गलत तरीके से आईबीआउटलेट/आईबैक्शन

इंटरफ़ेस बिल्डर और सहायक संपादक का उपयोग करते समय, मैं लेबल, बटन इत्यादि बना सकता हूं और नियंत्रण-ड्रैग के साथ कोड में आउटलेट और एक्शन बना सकता हूं।

जब तक मैं सही हूं, कोई समस्या नहीं है। लेकिन अगर मैं ऑब्जेक्ट नाम की गलत वर्तनी करता हूं, तो मैं समस्याओं में भाग लेता हूं। या, मैं कार्रवाई के बजाय आउटलेट चुनता हूं। मुझे ऐसा सुधार करने का कोई तरीका नहीं दिख रहा है जो आईडीई को पूरी तरह से खराब नहीं कर रहा है। यहां तक ​​कि अगर मैं आईबी और कोड में ऑब्जेक्ट को हटा देता हूं, तो ऐसा लगता है कि जब मैं बिल्ड करता हूं तो समस्याएं पीछे आती हैं। या, यदि मैं कोड में रेखा को हटाने और इसे फिर से खींचने का प्रयास करता हूं, तो कोड की एक नई पंक्ति बनाई जाती है, लेकिन ऑब्जेक्ट अब नए नाम, और पुराने, अब गायब नाम का संदर्भ देता है।

फिर से, मैं स्विफ्ट के साथ काम कर रहा हूं --- चूंकि मैं उद्देश्य-सी का उपयोग नहीं करता/जानता हूं, मुझे नहीं पता कि उस भाषा का उपयोग करने के समान व्यवहार है या नहीं।

किसी भी पॉइंटर्स की सराहना करें। (इंटरफेस बिल्डर/स्टोरीबोर्ड/स्विफ्ट का उपयोग न करने के अलावा।)

+0

स्पष्टीकरण के लिए - सरल गलत वर्तनी को सही करने का सबसे अच्छा तरीका क्या है?(या मैंने बस सादा एक बुरा नाम चुना है, और अब इसे ठीक करने की इच्छा है - इसलिए नाम सिर्फ कनेक्शन में नहीं है, बल्कि पूरे कोड में है। (यानी, FIND/बदलें जिसमें आईबी भी शामिल है?) –

+0

नाम बदलने के लिए कनेक्शन को हटाए बिना आईबीओलेट इसे आज़माएं। Http://stackoverflow.com/a/37313505/7250862 –

उत्तर

53

कनेक्शन तोड़ने के लिए कनेक्शन इंस्पेक्टर का उपयोग करें। फिर आप चिंता किए बिना ऑब्जेक्ट और/या कोड को संशोधित/हटा सकते हैं।

enter image description here

+2

धन्यवाद - मैंने स्पष्ट करने के लिए अपना खुद का प्रश्न अपडेट किया: - सरल गलत वर्तनी को सही करने का सबसे अच्छा तरीका क्या है (या बेहतर अभी तक, एक परिवर्तनीय नाम को अधिक अर्थपूर्ण बनाने के लिए सही करने के लिए, कोड में कई बार दिखाई देता है। –

+1

@ user1639473 - कोई आईबी स्वयं नहीं है (AFAIK, वे उस सुविधा को किसी बिंदु पर जोड़ सकते हैं)। इसलिए प्रक्रिया है 1) कनेक्शन तोड़ें 2) कोड में ढूंढें/प्रतिस्थापित करें 3) कनेक्शन को फिर से बनाएं। चरण 3 को आईबी ऑब्जेक्ट से कोड की मौजूदा पंक्ति पर नियंत्रण-ड्रैगिंग द्वारा किया जा सकता है, या आप कोड एडिटर * के बाएं हाशिए में * खाली ऑब्जेक्ट में खाली सर्कल से ड्रैग (डब्ल्यू/ओ कंट्रोल) खींच सकते हैं। आईबी *। – user3386109

+0

किसी ऑब्जेक्ट का नाम बदलने के लिए संपादित करें> रिफैक्टर> नाम बदलें (या ऑब्जेक्ट पर राइट क्लिक करें)। यह इंटरफेस बिल्डर में किसी भी आईबीओलेट संदर्भ का नाम भी बदलता है। –

6

आप फ़ाइल जिसमें वे एक "रिक्त छेद" के लिए स्रोत संपादक की "गटर" में देख कर घोषित कर रहे हैं में अप्रयुक्त IBOutlets पा सकते हैं।

enter image description here

8

स्वीकार किए जाते हैं जवाब ठीक है, लेकिन वहाँ एक ही बात करने के लिए कुछ तरीके हैं।

विधि एक

सही स्टोरीबोर्ड में दृश्य पर क्लिक करें और फिर संदर्भित आउटलेट द्वारा क्लिक थोड़ा एक्स।

enter image description here

विधि दो

सही दस्तावेज़ रूपरेखा में दृश्य का नाम क्लिक करें। फिर रेफरेंसिंग आउटलेट द्वारा छोटे एक्स पर क्लिक करें।

enter image description here

विधि तीन

स्टोरीबोर्ड पर दृश्य का चयन करें और उसके बाद कनेक्शन इंस्पेक्टर। फिर आप एक आउटलेट संदर्भ को हटाने के लिए छोटे एक्स पर क्लिक कर सकते हैं। कोड में

enter image description here

अतिरिक्त संदर्भ

enter image description here

आप कोड में आउटलेट कनेक्शन है कि आप अपने this answer देखने में नहीं जोड़ा था मिल रहे हैं।

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