Objective-C, C programlama diline Smalltalk tarzı mesajlaşma ekleyen nesne yönelimli bir programlama dilidir. 2014 yılında Swift'in tanıtımına kadar Apple'ın macOS ve iOS geliştirme için kullandığı birincil programlama diliydi. Objective-C, C'nin verimliliği ve performansını Smalltalk'un esnekliği ve dinamik yetenekleri ile birleştirerek, Apple'ın platformlarında uygulama geliştirmek için iyi bir şekilde uygun hale getirir. Söz dizimi ve yapısı, karmaşık uygulamaların oluşturulmasına olanak tanırken, okunabilirliği ve diğer C tabanlı dillerle entegrasyon kolaylığını korur.
Objective-C, 1980'lerin başında Brad Cox ve Tom Love tarafından Stepstone adlı bir yazılım şirketinde yaratılmıştır. Oluşumundaki motivasyon, nesne yönelimli paradigmanın gelişimi için yazılım geliştiren geliştiricilere daha esnek bir programlama modeli sunmaktı. Dil, Smalltalk'a benzer mesajlaşma yetenekleri ile C'yi genişleterek geliştirilmiştir; bu da programlamaya daha dinamik bir yaklaşım sağlamıştır.
1980'lerin sonlarında, Steve Jobs tarafından kurulan NeXT Computer, NeXTSTEP işletim sistemi için Objective-C'yi benimsemiştir. Bu işletim sistemi, ağ ortamında uygulama geliştirmeyi kolaylaştırmak için tasarlanmıştır. Bu karar, Apple'ın 1997'de NeXT'i satın almasıyla büyük bir kazanç sağladı ve Objective-C, macOS ve iOS geliştirme için temel haline geldi.
2014 yılında Swift'in tanıtılmasına rağmen, Objective-C hala Apple ekosisteminin önemli bir parçası olmaya devam etmektedir. Birçok eski uygulama hala Objective-C kullanmakta ve güncel geliştirme ortamlarında Swift ile birlikte desteklenmektedir. Objective-C'nin dinamik çalışma zamanı ve mesajlaşma yetenekleri, daha yeni dillerin ve çerçevelerin tasarımını etkilemeye devam etmektedir.
Objective-C, geliştiricilerin sınıflar, nesneler ve yöntemler tanımlamasına olanak tanıyarak, kodu etkili bir şekilde organize etmeye ve modüler hale getirmeye yardımcı olur.
@interface MyClass : NSObject
- (void)myMethod;
@end
@implementation MyClass
- (void)myMethod {
NSLog(@"MyClass'tan merhaba!");
}
@end
Objective-C, dinamik tip belirlemeye olanak tanır; bu, değişkenlerin çalışma zamanında farklı sınıfların nesnelerini tutmasını sağlar ve daha esnek kodlama desenleri için faydalıdır.
id myObject = [[MyClass alloc] init];
Objective-C, geleneksel fonksiyon çağrıları yerine, daha dinamik yöntem çözümlemesine olanak tanıyan Smalltalk'a benzeyen bir mesajlaşma söz dizimi kullanır.
[myObject myMethod];
Kategoriler, geliştiricilerin mevcut sınıflara alt sınıf oluşturmadan yöntem eklemelerine olanak tanır. Bu, üçüncü taraf kütüphaneleri genişletmek için özellikle faydalıdır.
@interface NSString (MyCategory)
- (NSString *)reverseString;
@end
Objective-C'deki protokoller, diğer dillerdeki arayüzlere benzer; herhangi bir sınıf tarafından uygulanabilecek yöntemlerin tanımlanmasına olanak tanır.
@protocol MyProtocol
- (void)requiredMethod;
@end
Objective-C, sınıf değişkenlerinin kapsüllemesini basitleştiren bir özellik özelliği sunar ve getter ve setter yöntemlerini otomatik olarak yönetir.
@interface MyClass : NSObject
@property (nonatomic, strong) NSString *name;
@end
Dil, belleği etkili bir şekilde yönetmek için hem manuel referans sayımı (MRC) hem de Otomatik Referans Sayımı (ARC) kullanır.
self.name = [[NSString alloc] initWithFormat:@"Merhaba"];
Objective-C, diğer dillerdeki closure'lara benzer blokları destekler ve satır içi fonksiyon tanımı ve yürütmesine olanak tanır.
void (^myBlock)(void) = ^{
NSLog(@"Blok'tan merhaba!");
};
Objective-C, yaygın programlama desenlerine yardımcı olan söz dizimi yapıları sunar; örneğin, kısa dizi oluşturma ve sözlük literalleri.
NSArray *array = @[@"Bir", @"İki", @"Üç"];
Objective-C, NSError
kullanarak benzersiz bir hata yönetim sistemi uygular; bu, yöntemlerin istisnalar kullanmadan hata döndürmesine olanak tanır.
NSError *error = nil;
BOOL success = [myObject performActionWithError:&error];
Xcode, Objective-C için birincil Entegre Geliştirme Ortamı (IDE) olup, Apple platformlarında uygulama geliştirme, hata ayıklama ve dağıtım için sağlam bir araç seti sunar. Görsel bir arayüz oluşturucu ve kapsamlı belgeler içerir.
Objective-C kodu genellikle LLVM projesinin bir parçası olan Clang derleyicisi kullanılarak derlenir. Clang, hızlı derleme süreleri, harika hata tanılama özellikleri sunar ve C ve Objective-C'nin en son standartlarını destekler.
Xcode'da bir projeyi oluşturmak için geliştiriciler yeni bir proje oluşturur, derleme ayarlarını yapılandırır ve arayüz bileşenlerini görsel olarak tasarlamak için Arayüz Oluşturucu'yı kullanır. Uygulamayı oluşturma ve çalıştırma, Xcode içinde tek bir düğme tıklamasıyla yapılabilir.
Objective-C, esasen macOS ve iOS için uygulama geliştirmek için kullanılır. Birçok eski uygulamanın belkemiğidir ve modern uygulamalar için Swift ile birlikte kullanılmaya devam etmektedir. Önemli uygulamalar arasında şunlar bulunmaktadır:
İlgili programlama dilleri ile karşılaştırıldığında, Objective-C'nin kendine özgü güçlü ve zayıf yönleri vardır.
Objective-C'yi diğer dillere çevirmek için aşağıdakileri göz önünde bulundurun:
Objective-C için mevcut kaynak koddan kaynak koda çeviri araçları şunlardır: