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

  • Sam Kear

    Sam Kear

    14 Temmuz 2007
  • steeletraining

    steeletraini

    28 NİSAN 2010
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012