Objective-C एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है जो C प्रोग्रामिंग भाषा में Smalltalk-शैली का संदेश भेजने की क्षमता जोड़ती है। यह 2014 में Swift के परिचय तक macOS और iOS विकास के लिए Apple द्वारा उपयोग की जाने वाली प्राथमिक प्रोग्रामिंग भाषा थी। Objective-C C की दक्षता और प्रदर्शन को Smalltalk की लचीलापन और गतिशील क्षमताओं के साथ जोड़ती है, जिससे यह Apple के प्लेटफार्मों पर अनुप्रयोग विकसित करने के लिए उपयुक्त बनती है। इसकी सिंटैक्स और संरचना जटिल अनुप्रयोगों के निर्माण की अनुमति देती है जबकि पढ़ने में आसानी और अन्य C-आधारित भाषाओं के साथ एकीकरण की सरलता बनाए रखती है।
Objective-C का निर्माण 1980 के दशक की शुरुआत में ब्रैड कॉक्स और टॉम लव द्वारा Stepstone, एक सॉफ़्टवेयर कंपनी में किया गया था। इसके निर्माण के पीछे का उद्देश्य विकासकर्ताओं को एक अधिक लचीला प्रोग्रामिंग मॉडल प्रदान करना था जो उभरते ऑब्जेक्ट-ओरिएंटेड पैरेडाइम के लिए सॉफ़्टवेयर बना रहे थे। इस भाषा का विकास C को Smalltalk के समान संदेश भेजने की क्षमताओं के साथ बढ़ाकर किया गया, जिसने प्रोग्रामिंग के लिए एक अधिक गतिशील दृष्टिकोण की अनुमति दी।
1980 के दशक के अंत में, Steve Jobs द्वारा स्थापित NeXT Computer ने अपने NeXTSTEP ऑपरेटिंग सिस्टम के लिए Objective-C को अपनाया, जिसे नेटवर्किंग वातावरण में अनुप्रयोगों के विकास को सुविधाजनक बनाने के लिए डिज़ाइन किया गया था। यह निर्णय बाद में बहुत लाभकारी साबित हुआ जब Apple ने 1997 में NeXT का अधिग्रहण किया, जिससे Objective-C macOS और iOS विकास की नींव बन गया।
2014 में Swift के परिचय के बावजूद, जिसे Objective-C के लिए एक सुरक्षित और आधुनिक विकल्प के रूप में डिज़ाइन किया गया था, Objective-C Apple के पारिस्थितिकी तंत्र का एक महत्वपूर्ण हिस्सा बना हुआ है। कई विरासती अनुप्रयोग अभी भी Objective-C का उपयोग करते हैं, और इसे वर्तमान विकास वातावरण में Swift के साथ समर्थन प्राप्त है। Objective-C का गतिशील रनटाइम और संदेश भेजने की क्षमताएँ नए भाषाओं और ढांचों के डिज़ाइन को प्रभावित करना जारी रखती हैं।
Objective-C मौलिक रूप से ऑब्जेक्ट-ओरिएंटेड है, जिससे विकासकर्ताओं को कक्षाएँ, वस्तुएँ और विधियाँ परिभाषित करने की अनुमति मिलती है। यह कोड को प्रभावी ढंग से व्यवस्थित और मॉड्यूलर करने में मदद करता है।
@interface MyClass : NSObject
- (void)myMethod;
@end
@implementation MyClass
- (void)myMethod {
NSLog(@"Hello from MyClass!");
}
@end
Objective-C गतिशील टाइपिंग की अनुमति देता है, जिससे चर विभिन्न कक्षाओं की वस्तुओं को रनटाइम में धारण कर सकते हैं, जो अधिक लचीले कोडिंग पैटर्न के लिए उपयोगी है।
id myObject = [[MyClass alloc] init];
पारंपरिक फ़ंक्शन कॉल के बजाय, Objective-C एक संदेश भेजने की सिंटैक्स का उपयोग करता है जो Smalltalk के समान है, जो अधिक गतिशील विधि समाधान की अनुमति देता है।
[myObject myMethod];
श्रेणियाँ विकासकर्ताओं को मौजूदा कक्षाओं में विधियाँ जोड़ने की अनुमति देती हैं बिना उपकक्षा बनाए। यह तीसरे पक्ष की लाइब्रेरी को विस्तारित करने के लिए विशेष रूप से उपयोगी है।
@interface NSString (MyCategory)
- (NSString *)reverseString;
@end
Objective-C में प्रोटोकॉल अन्य भाषाओं में इंटरफेस के समान होते हैं, जो विधियों की परिभाषा की अनुमति देते हैं जिन्हें कोई भी कक्षा लागू कर सकती है।
@protocol MyProtocol
- (void)requiredMethod;
@end
Objective-C एक गुण सुविधा प्रदान करता है जो कक्षा के चर के संकुचन को सरल बनाता है, स्वचालित रूप से गेटर और सेटर विधियों को संभालता है।
@interface MyClass : NSObject
@property (nonatomic, strong) NSString *name;
@end
यह भाषा प्रभावी रूप से मेमोरी प्रबंधन के लिए मैनुअल संदर्भ गणना (MRC) और स्वचालित संदर्भ गणना (ARC) दोनों का उपयोग करती है।
self.name = [[NSString alloc] initWithFormat:@"Hello"];
Objective-C ब्लॉक्स का समर्थन करता है, जो अन्य भाषाओं में क्लोजर के समान होते हैं और इनलाइन फ़ंक्शन परिभाषा और निष्पादन की अनुमति देते हैं।
void (^myBlock)(void) = ^{
NSLog(@"Hello from Block!");
};
Objective-C सामान्य प्रोग्रामिंग पैटर्न में सहायता करने के लिए सिंटैक्स निर्माण प्रदान करता है, जैसे संक्षिप्त एरे निर्माण और शब्दकोश लिटेरल।
NSArray *array = @[@"One", @"Two", @"Three"];
Objective-C एक अद्वितीय त्रुटि प्रबंधन प्रणाली का उपयोग करता है जो NSError
का उपयोग करता है, जो विधियों को अपवादों का उपयोग किए बिना त्रुटियाँ लौटाने की अनुमति देता है।
NSError *error = nil;
BOOL success = [myObject performActionWithError:&error];
Xcode Objective-C के लिए प्राथमिक एकीकृत विकास वातावरण (IDE) है, जो Apple प्लेटफार्मों पर अनुप्रयोगों के विकास, डिबगिंग और तैनाती के लिए एक मजबूत उपकरण सेट प्रदान करता है। इसमें एक दृश्य इंटरफ़ेस बिल्डर और व्यापक दस्तावेज़ीकरण शामिल है।
Objective-C कोड आमतौर पर Clang संकलक का उपयोग करके संकलित किया जाता है, जो LLVM परियोजना का हिस्सा है। Clang तेज़ संकलन समय, उत्कृष्ट त्रुटि निदान प्रदान करता है, और C और Objective-C के नवीनतम मानकों का समर्थन करता है।
Xcode में एक परियोजना बनाने के लिए, विकासकर्ता एक नई परियोजना बनाते हैं, निर्माण सेटिंग्स को कॉन्फ़िगर करते हैं, और UI घटकों को दृश्य रूप से डिज़ाइन करने के लिए इंटरफ़ेस बिल्डर का उपयोग करते हैं। अनुप्रयोग को सीधे Xcode में एक बटन क्लिक के साथ बनाया और चलाया जा सकता है।
Objective-C मुख्य रूप से macOS और iOS के लिए अनुप्रयोग विकसित करने के लिए उपयोग किया जाता है। यह कई विरासती अनुप्रयोगों की रीढ़ है और आधुनिक अनुप्रयोगों के लिए Swift के साथ संयोजन में उपयोग किया जाता है। उल्लेखनीय अनुप्रयोगों में शामिल हैं:
संबंधित प्रोग्रामिंग भाषाओं की तुलना में, Objective-C की अपनी अनूठी ताकत और कमजोरियाँ हैं।
Objective-C को अन्य भाषाओं में अनुवाद करते समय, निम्नलिखित पर विचार करें:
Objective-C के लिए मौजूदा स्रोत से स्रोत कोड अनुवाद उपकरणों में शामिल हैं: