SORU
17 AĞUSTOS 2009, PAZARTESİ


İçinde Objective-C neden = [super init] öz nil olup olmadığını kontrol etmeli miyim?

Objective-C init yazma yöntemleri hakkında genel bir sorum var

Her yerde (Apple'ın kodu, kitaplar, açık kaynak kodu, vb.) görüyorum ınit yöntemi = [super init] öz hazırlama ile devam etmeden önce nil olup olmadığını kontrol edin.

Init yöntemi için varsayılan Elma şablonu

- (id) init
{
    self = [super init];

    if (self != nil)
    {
        // your code here
    }

    return self;
}

Neden?

Init hiç nil dönüş oluyor yani? NSObject ınıt aradım ve geri nil var, o zaman bir şeyler gerçekten berbat olmalı? Ve bu durumda, hatta bir program yazabilirsin

Gerçekten bir sınıf' ınit yöntemi nil döndürebilir? ortak mı bu Yani, ne durumda, ve neden?

CEVAP
17 AĞUSTOS 2009, PAZARTESİ


Bu özel deyim her durumda çalışır, çünkü standart.

Nadir olsa da, durumlarda yapılacaktır

[super init];

... döner farklı bir örnek, kendini tahsisi gerektirecek böylece.

Ve nil döndürecektir durumlarda, böylece artık var olmayan kodunuzu bir örneğini başlatmak için deneyin olmadığını kontrol değişkeni nil yuvası gerektiren olacak.

Alt çizgi kullanmak için belgelenmiş doğru desen ve, eğer bunu kullanarak değilse, yanlış yapıyorsun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • EminemVEVO

    EminemVEVO

    12 Mayıs 2009
  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006