SORU
3 HAZİRAN 2014, Salı


Sınıf değişkenleri henüz desteklememektedir

Bölünmüş projemi ilk görünüm denetleyicisi denetleyicisi görüntülemek ve otomatik olarak film şeridi baştan başlıyorum.

Genellikle, bu kullanıcı arayüzü ile bir uygulama varbir ve tekbölünmüş olarak kök denetleyicisi görünümü, bir ben yaratmakstatik değişkenalt sınıf ve hazırlama işi bittiğinde ayarlayın.

Swift ile bu davranışları denemek istiyorum.

Tip özellikleri (statik ve sınıf anahtar kelime ile) hakkında mor ve iş için bir kod parçası üzerinde çalışıyor Swift programlama dili kılavuzu kitabı okudum:

import UIKit

class SplitViewController: UISplitViewController {

    class func sharedInstance() -> SplitViewController {
        return SplitViewController.instance
    }

    class let instance: SplitViewController = nil

    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        self.initialization()
    }

    init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder);
        self.initialization()
    }

    func initialization() {
        SplitViewController.instance = self;
    }
}

ama bu tür özellikler için class anahtar sözcüğü henüz desteklenen değildi Güncellemelerinden dediğimde anladım.

error detail in image

Bunu yapmak için bir çözüm var mı ?

CEVAP
24 Temmuz 2014, PERŞEMBE


Bir yapı gömme gayet iyi bir çözüm olarak çalışabilir:

class SomeClass
{
  // class var classVariable: Int = 0
  // "Class variables not yet supported." Weird.

  // Workaround:
  private struct SubStruct { static var staticVariable: Int = 0 }

  class var workaroundClassVariable: Int
  {
    get { return SubStruct.staticVariable }
    set { SubStruct.staticVariable = newValue }
  }
}

Bu SomeClass.workaroundClassVariable hesaplanan türü özelliği ise saklı bir tür özelliği olarak kullanılabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Film Riot

    Film Riot

    16 NİSAN 2006
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006
  • Triune Films

    Triune Films

    9 ŞUBAT 2006