*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
Objective-C, Apple işletim sistemi olan macOS ve iOS için yazılım geliştirmek isteyenlerin tercih ettiği programlama dilidir. Nesne yönelimli bir programlama dilidir ve diğer dillerde olduğu gibi sınıf, nesne, yöntem gibi yapıları kullanır. Bu yazıda Objective-C'nin ileri düzey konularını ele alacağız.
Kategoriler
Objective-C'deki kategoriler, bir sınıfa daha fazla yöntem ekleme imkanı sağlar. Bu, bir sınıfın başka bir sınıftan özelliklerini miras almasına veya bir sınıfın işlevselliğini genişletmesine izin verir. Örneğin, NSString sınıfına bazı ek yöntemler eklemek istiyorsanız, NSString kategorisi oluşturabilirsiniz.
Örneğin, NSString sınıfına \"reverse\" yöntemi eklemek isteyelim:
@interface NSString (Reverse)
- (NSString *)reverse;
@end
@implementation NSString (Reverse)
- (NSString *)reverse {
NSMutableString *reversedString = [NSMutableString string];
NSInteger charIndex = [self length];
while (charIndex > 0) {
charIndex--;
NSRange subStrRange = NSMakeRange(charIndex, 1);
[reversedString appendString:[self substringWithRange:subStrRange]];
}
return reversedString;
}
@end
Bu kategori, NSString sınıfına yeni bir \"reverse\" yöntemi ekler. Yeni yöntemi kullanarak, herhangi bir NSString nesnesini tersine çevirebiliriz.
NSString *normalString = @\"apple\";
NSString *reversedString = [normalString reverse];
Console.WriteLine(@\"%@\", reversedString); // Outputs \"elppa\"
Blocklar
Objective-C'nin diğer dillere özgü olmayan özelliklerinden biri bloklardır. Bloklar, bir işlevin değişkenleri ve kodu ile birlikte bir nesne olarak tanımlanmasını sağlar. Bu, bir fonksiyon gibi, ancak ciddi şekilde daha esnektir.
Bir blok kullanarak, işlevin varsayılan değerlerini alabilen bir işlev tanımlayabiliriz. Ayrıca, yeni bir blok kullanarak, bir işlevi bir başka işlevin içinde tanımlayabiliriz.
Örneğin, bir blok kullanarak bir dizi elemanlarının toplamını hesaplayalım:
int (^addition)(int, int) = ^(int a, int b) {
return a + b;
};
int sum = addition(5, 3);
NSLog(@\"%d\", sum); // Outputs 8
Bu blok, iki tam sayı değişkeni alan bir işlevdir. İşlev, bir int döndürür ve addisyon için kullanılır.
Geri aramalar
Objective-C'nin geri arama işlevleri, bir nesnenin belirli olaylara nasıl yanıt vereceğini tanımlamamızı sağlar. Geri arama işlevleri, nesneler arasındaki etkileşimlerde önemli bir role sahiptir.
Bu örnekte, bir sınıf ile geri arama işlevleri kullanarak bir düğme oluşturuyoruz:
@interface MyButton : NSButton
@property (nonatomic, copy) void (^onClick)();
@end
@implementation MyButton
- (void)mouseUp:(NSEvent *)theEvent {
self.onClick ? self.onClick() : nil;
}
@end
MyButton sınıfı, NSButton sınıfından türer ve bir \"onClick\" geri arama işlevine sahiptir. \"mouseUp\" yöntemi, kullanıcının düğmeye tıklamasının ardından çağrılır ve \"onClick\" işlevi tetiklenir.
Sık Sorulan Sorular
Objective-C'nin güncel bir sürümü var mı?
Apple, Objective-C'yi Swift ile değiştirerek Swift'e öncelik veriyor. Bununla birlikte, Objective-C hala kullanılabilir, ancak Swift kullanımı tercih edilir.
Objective-C'deki bloklar, başka dillere özgü mü?
Hayır, bloklar Objective-C diline özgü değildir. Benzer işlevler, diğer dillerde de mevcuttur, ancak Objective-C'nin blok söz dizimi benzersizdir.
Hangi diğer dillere benziyor?
Objective-C, diğer C dillerinin özelliklerini kullanır ve C++ dili ile yakın bir ilişkiye sahiptir. Nesne yönelimli programlama (OOP) açısından, Objective-C, Smalltalk'a benzer."
Objective-C, Apple işletim sistemi olan macOS ve iOS için yazılım geliştirmek isteyenlerin tercih ettiği programlama dilidir. Nesne yönelimli bir programlama dilidir ve diğer dillerde olduğu gibi sınıf, nesne, yöntem gibi yapıları kullanır. Bu yazıda Objective-C'nin ileri düzey konularını ele alacağız.
Kategoriler
Objective-C'deki kategoriler, bir sınıfa daha fazla yöntem ekleme imkanı sağlar. Bu, bir sınıfın başka bir sınıftan özelliklerini miras almasına veya bir sınıfın işlevselliğini genişletmesine izin verir. Örneğin, NSString sınıfına bazı ek yöntemler eklemek istiyorsanız, NSString kategorisi oluşturabilirsiniz.
Örneğin, NSString sınıfına \"reverse\" yöntemi eklemek isteyelim:
@interface NSString (Reverse)
- (NSString *)reverse;
@end
@implementation NSString (Reverse)
- (NSString *)reverse {
NSMutableString *reversedString = [NSMutableString string];
NSInteger charIndex = [self length];
while (charIndex > 0) {
charIndex--;
NSRange subStrRange = NSMakeRange(charIndex, 1);
[reversedString appendString:[self substringWithRange:subStrRange]];
}
return reversedString;
}
@end
Bu kategori, NSString sınıfına yeni bir \"reverse\" yöntemi ekler. Yeni yöntemi kullanarak, herhangi bir NSString nesnesini tersine çevirebiliriz.
NSString *normalString = @\"apple\";
NSString *reversedString = [normalString reverse];
Console.WriteLine(@\"%@\", reversedString); // Outputs \"elppa\"
Blocklar
Objective-C'nin diğer dillere özgü olmayan özelliklerinden biri bloklardır. Bloklar, bir işlevin değişkenleri ve kodu ile birlikte bir nesne olarak tanımlanmasını sağlar. Bu, bir fonksiyon gibi, ancak ciddi şekilde daha esnektir.
Bir blok kullanarak, işlevin varsayılan değerlerini alabilen bir işlev tanımlayabiliriz. Ayrıca, yeni bir blok kullanarak, bir işlevi bir başka işlevin içinde tanımlayabiliriz.
Örneğin, bir blok kullanarak bir dizi elemanlarının toplamını hesaplayalım:
int (^addition)(int, int) = ^(int a, int b) {
return a + b;
};
int sum = addition(5, 3);
NSLog(@\"%d\", sum); // Outputs 8
Bu blok, iki tam sayı değişkeni alan bir işlevdir. İşlev, bir int döndürür ve addisyon için kullanılır.
Geri aramalar
Objective-C'nin geri arama işlevleri, bir nesnenin belirli olaylara nasıl yanıt vereceğini tanımlamamızı sağlar. Geri arama işlevleri, nesneler arasındaki etkileşimlerde önemli bir role sahiptir.
Bu örnekte, bir sınıf ile geri arama işlevleri kullanarak bir düğme oluşturuyoruz:
@interface MyButton : NSButton
@property (nonatomic, copy) void (^onClick)();
@end
@implementation MyButton
- (void)mouseUp:(NSEvent *)theEvent {
self.onClick ? self.onClick() : nil;
}
@end
MyButton sınıfı, NSButton sınıfından türer ve bir \"onClick\" geri arama işlevine sahiptir. \"mouseUp\" yöntemi, kullanıcının düğmeye tıklamasının ardından çağrılır ve \"onClick\" işlevi tetiklenir.
Sık Sorulan Sorular
Objective-C'nin güncel bir sürümü var mı?
Apple, Objective-C'yi Swift ile değiştirerek Swift'e öncelik veriyor. Bununla birlikte, Objective-C hala kullanılabilir, ancak Swift kullanımı tercih edilir.
Objective-C'deki bloklar, başka dillere özgü mü?
Hayır, bloklar Objective-C diline özgü değildir. Benzer işlevler, diğer dillerde de mevcuttur, ancak Objective-C'nin blok söz dizimi benzersizdir.
Hangi diğer dillere benziyor?
Objective-C, diğer C dillerinin özelliklerini kullanır ve C++ dili ile yakın bir ilişkiye sahiptir. Nesne yönelimli programlama (OOP) açısından, Objective-C, Smalltalk'a benzer."
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle