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

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • karneson

    karneson

    23 Temmuz 2006
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006