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

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012