मैं Xcode 6 या उच्चतर में एक श्रेणी कैसे बनाऊं?


318

मैं UIColorXcode 6 का उपयोग करके अपने ऐप में एक श्रेणी बनाना चाहता हूं। लेकिन बात यह है कि Xcode 6 में कोई Objective-C फ़ाइल फ़ाइल टेम्पलेट नहीं है।

क्या Xcode 6 में श्रेणी बनाने का कोई विकल्प है?


आपने इसे Xcode 6 से पहले कैसे किया?
हॉलेक्स

बस इसे एक स्रोत फ़ाइल में टाइप करें: @interface UIColor(MyCategory) ... आदि
जेरेमीप

8
क्यों नहीं एक उत्तर का चयन करें ?? समाधान की तलाश में अन्य उपयोगकर्ताओं के लिए ऐसा समय बर्बाद नहीं करना।
टॉमी सी।

यदि आप स्विफ्ट का उपयोग कर रहे हैं, तो आप एक श्रेणी के बजाय एक एक्सटेंशन बनाएंगे। यह कैसे करना है के लिए यह उत्तर देखें ।
सुरगाछ

जवाबों:


745

वे नहीं भूले। वे बिना किसी को बताए बस चले गए।

  1. क्लिक करें File-> New->File

  2. चयन Objective-C fileके तहत Sourcesमें iOSया Mac OSक्रमशः और अगला क्लिक करें

  3. अब के तहत File Type:या तो चुनें Category, ProtocolयाExtension

पुनश्च। के तहत File Name:जो भी आप यहाँ टाइप हो जाएगा या तो Category, Protocolया Extensionनाम।


13
यह कितना भ्रामक है।
बेन सिनक्लेयर

6
उन्होंने बस स्विफ्ट को जोड़ने के लिए समायोजित किया और उद्देश्य-सी के तहत सब कुछ छिपा दिया या मुझे लगता है कि उन्होंने किया। मुझे व्यक्तिगत रूप से स्विफ्ट को क्यों नहीं जोड़ा गया, ऑब्जेक्टिव-सी इतनी सुंदर और अभिव्यंजक भाषा है कि एक बार आपको पता चल जाए ... यह सी के ऊपर की वस्तुएं हैं ... पेरर्रैक्ट
यूएनएम

8
हेह, Objective-C Fileएक्सकोड 6 के लिए दिया गया विवरण "एन खाली उद्देश्य-सी फ़ाइल है।", मेरे विवरण के बजाय, जो होगा, "पुराने में से एक, सभी खाली नहीं, उद्देश्य-सी फाइलें जो आपके लिए उपयोग की जाती हैं" , जो मुझे काफी अच्छी तरह से फेंक दिया!
बेंजोना

@unmircea ऐसी उपयोगी जानकारी पोस्ट करने के लिए धन्यवाद। Apple के लिए: यह बेवकूफ है!
mbm29414

1
वे नहीं भूले। वे बिना किसी को बताए बस चले गए। सामान्य रूप से Apple दस्तावेज़ों के भद्दे स्तर और सबसे अधिक बार प्रलेखन की कुल कमी को देखते हुए, क्या विशिष्ट है।
बत्तख

77

CategoryBaseClass + CategoryName.m / .h बनाने के लिए :

  1. फ़ाइल → नई → फ़ाइल ... या .N का उपयोग करें
  2. Objective-C File को Select करें ।

यहां छवि विवरण दर्ज करें

  1. श्रेणी के नाम में टाइप करें, फ़ाइल प्रकार का चयन करें: श्रेणी , और फिर आधार वर्ग का चयन करें।

यहां छवि विवरण दर्ज करें

  1. श्रेणी बनाने के लिए प्रवाह को पूरा करें।


19

Xcode6-Beta5 अपडेट

इंटरफ़ेस अब बदल गया है और नई> फ़ाइल विंडो से सीधे श्रेणी जोड़ना संभव है।

देखिए अनमरकिया का जवाब


मैं खुद हैरान था, और मुझे लगता है कि स्विफ्ट के कारण वे अच्छे पुराने उद्देश्य-सी के बारे में भूल गए

आपके पास दो विकल्प हैं:

  1. श्रेणी नाम के साथ एक उद्देश्य-सी वर्ग बनाएं, उदाहरण UIView+Powerups, फिर मैन्युअल रूप से श्रेणी के एक से मिलान करने के लिए इंटरफ़ेस बदलें। ध्यान दें कि श्रेणी इंटरफ़ेस और कार्यान्वयन के लिए स्निपेट अभी भी काम कर रहा है, इसलिए यह अतिरिक्त आसान है: प्रकार @interface-categoryऔर @implementation-category

  2. इसे Xcode 5 से आयात करें! इस कमांड का उपयोग करें:

    cp -r /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Cocoa\ Touch/Objective-C\ category.xctemplate /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Source/

    बंद करें और Xcode 6 को फिर से खोलें और आपको नई फ़ाइल के लिए विज़ार्ड में "ऑब्जेक्टिव-सी श्रेणी" मिलेगी।


2
FYI करें: यदि आप बाद के बीटा पर हैं, तो Xcode6-betaX.app की लाइन में Xcode-beta.app को बदल दें जहाँ X बीटा नंबर है।
एलेक्स यूक्रेनी

1
गलत! सही उत्तर के लिए नीचे unmircea द्वारा उत्तर की जाँच करें - यह नहीं चला गया है, यह सिर्फ स्थानांतरित कर दिया गया है ..
Jay

12

Xcode 6 बीटा (समय के लिए) में श्रेणी बनाने के लिए कोई पूर्वनिर्धारित टेम्पलेट नहीं है, वे बाद में इस विकल्प को जोड़ सकते हैं। Cocoa Touch Classअपने आस-पास के काम के रूप में (इसका उचित रूप से मुझे पता नहीं है लेकिन कोई अन्य तरीका) नाम UIImage+Additions(ClassName + CategoryName) बना सकते हैं और इसके इंटरफ़ेस को ओवरराइड कर सकते हैं और किसी चीज़ को लागू कर सकते हैं

UIImage + Additions.h

#import <UIKit/UIKit.h>

@interface UIImage(Additions)

+(void)testMethod;

@end 

UIImage + Additions.m

#import "UIImage+Additions.h"

@implementation UIImage (Additions)

+(void)testMethod
{

}

@end

संपादित करें
यह उत्तर Xcode 6 बीटा में श्रेणी बनाने का तरीका खोजने से पहले लिखा गया था। श्रेणी बनाने के सही तरीके के लिए unmircea के उत्तर की जाँच करें


Apple ऑब्जेक्टिव-सी श्रेणी, ऑब्जेक्टिव-सी क्लास एक्सटेंशन, ऑब्जेक्टिव-सी प्रोटोकॉल टेम्प्लेट जोड़ना भूल गया ...
यमलंदाराव

यदि आप इसे डुप्लिकेट करना चाहते हैं तो मैंने एक बग रिपोर्ट # 17627118 बनाई।
डेविड पेटीगू ने

XCode 6 के अंतिम संस्करण के बाद से वर्कअराउंड की अब आवश्यकता नहीं है, इसमें श्रेणी का समर्थन अंतर्निहित है।
ज़ोरयार

@Zorayr अंतिम Xcode 6 संस्करण से पहले इसका उत्तर दिया गया था और आस-पास का काम भी गलत नहीं है। बस वोट नीचे मत करो।
अनिल वर्गीज

6

विस्तार unmircea के शानदार जवाब पुन: एक कस्टम लागू करने के लिए एक कस्टम श्रेणी बनाने का तरीका UIColorपैलेट, आप एक वर्ग बना सकते हैं।

एक बार जब आप अपनी श्रेणी बना लेते हैं (इस उदाहरण में, यह वर्ग की श्रेणी कहलाती ColorPaletteहै ), तो आपके पास एक हेडर और एक कार्यान्वयन फ़ाइल होगी। UIColor

UIColor + ColorPalette.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorPalette)

// Your custom colors

+ (UIColor *) customRedButtonColor;
+ (UIColor *) customGreenButtonColor;

@end

UIColor + ColorPalette.m

#import "UIColor+ColorPalette.h"

@implementation UIColor (ColorPalette)

// Button Colors

+ (UIColor *) customRedButtonColor {
    return [UIColor colorWithRed:178.0/255.0 green:25.0/255.0 blue:0.0/255.0 alpha:1.0];
}

+ (UIColor *) customGreenButtonColor {
    return [UIColor colorWithRed:20.0/255.0 green:158.0/255.0 blue:96.0/255.0 alpha:1.0];
}

अपने कस्टम रंग पैलेट का उपयोग करने के लिए, उस शीर्ष लेख को कक्षा में आयात करें जहाँ आप अपने कस्टम रंग लागू करना चाहते हैं:

#import "UIColor+ColorPalette.h"

और जैसा कि आप की तरह एक मानक रंग रंग फोन redColor, greenColor, या blueColor

यहाँ एक कस्टम पैलेट बनाने की थोड़ी और अधिक गहन चर्चा का लिंक दिया गया है

इसके अतिरिक्त, यहां कस्टम रंग मानों का चयन करने में आपकी सहायता करने के लिए एक उपकरण है


1
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
जैस्पर

3

आप Xcode के पुराने संस्करण से अपने इच्छित टेम्पलेट को कॉपी कर सकते हैं, मैंने इसके लिए एक शेल स्क्रिप्ट बनाई: https://github.com/cDigger/AddMissingTemplates


यद्यपि यह एक कार्यशील समाधान हो सकता है, लेकिन शायद Xcode में निर्मित श्रेणी समर्थन का उपयोग करना बेहतर विचार है - इस तरह, टेम्पलेट हमेशा अद्यतित रहेंगे।
जोरावर

1

आप NSString + हेल्पर जैसी "एक्सटेंशन" फ़ाइल बना सकते हैं:

1: File  New  File... or use N.

2: Name NSString+Helper (For example)

3: create the file

4: Remove the code from file

5: add 

extension NSString {


}

किया हुआ। कोडिंग का आनंद लें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.