जवाबों:
अपनी हेडर फ़ाइल में क्लास का सिंबल चुनें - यानी थोड़ी देर बाद @interface
। फिर रिफैक्टिंग सामान को सक्षम किया जाना चाहिए।
यदि आप ऑब्जेक्टिव-सी ++ (यानी सी-कोड के साथ ऑब्जेक्टिव-सी का उपयोग कर रहे हैं) तो रीकोडिंग को एक्सकोड में अक्षम कर दिया जाता है क्योंकि यह सी ++ कोड के रीफैक्टरिंग का समर्थन नहीं करता है।
यदि प्रभावित फाइलें (इसमें आपकी कक्षा के साथ फ़ाइल की संभावना है) को सहेजा नहीं गया है, तो रिफलेक्टर भी अक्षम हो सकता है।
मैं अब 5 वर्षों के लिए एक्सकोड का उपयोग कर रहा हूं, और रीफैक्टरिंग ने कभी भी सही तरीके से काम नहीं किया है (यहां तक कि एक्सकोड 4.6 में प्रमुख बग हैं जहां यह आपके स्रोत कोड को भ्रष्ट करेगा!)।
वर्कअराउंड हमेशा रहा है (अभी भी 100% काम करता है, यहां तक कि उन मामलों में भी जहां एप्पल का कोड विफल रहता है)
मेरे पास इस पद्धति के साथ 100% सफलता दर है। मैंने अभी हाल ही में Apple के "रिफ्लेक्टर -> का नाम बदलें" के साथ नवीनतम xcode में रिफैक्टिंग की कोशिश की और यह फिर से विफल हो गया!
(इस बार गलत त्रुटि के साथ: "भाषा को निर्धारित करने में असमर्थ", उन त्रुटि संदेशों में से एक है जहां Apple ने गलत पाठ डाला है)
मैं खोजकर्ता पर अपने प्रोजेक्ट के लिए जा रहा हूँ, तब तक फ़ाइलों का नाम बदलने के प्राप्त जानकारी ।
उसके बाद, xcode -> प्रोजेक्ट नेविगेटर I पर फ़ाइलों को हटा दें।
अंत में, मैं कक्षा पर दाईं ओर क्लिक करता हूं और फ़ाइलों को ... में जोड़ता हूं , और इन फ़ाइलों को फिर से जोड़ता हूं ।
इसने मेरे लिए काम किया।
मेरे लिए मुझे एहसास हुआ कि रिफ्लेक्टर अक्षम था क्योंकि मैंने जो Xcode प्रोजेक्ट खोला था, वह बेस SDK को संदर्भित कर रहा था जो गायब था। प्रोजेक्ट सेटिंग संपादित करें और बिल्ड टैब में आपके पास जो भी है उसके लिए बेस एसडीके सेट करें (जैसे मेरे लिए यह आईओएस 4.2 था)। इसने मेरे लिए रिफ्लेक्टर सक्षम किया।
अपनी कक्षा की हेडर फ़ाइल पर जाएं और इस तरह दिखने वाली रेखा को खोजें:
@interface YourClassName
वर्ग चिह्न (जैसे YourClassName) पर राइट क्लिक करें और आपको Refactor -> Rename ... का चयन करने में सक्षम होना चाहिए।
मैं सिर्फ यह कोशिश की और यह Xcode 5 में काम करता है।