2016-06-19 12 views
1

Kann ich eine leere veränderbare Eigenschaft (oder eine andere Eigenschaft) mit einem nicht optionalen Wert erstellen?Leere veränderbare Eigenschaft mit nicht optionalem Wert

Zum Beispiel ist diese Werke:

let distributions = MutableProperty<Distributions?>(nil) 

aber ich brauche etwas wie folgt aus:

let distributions = MutableProperty<Distributions>() 

Vertriebsobjekt:

struct Distributions : CollectionType{ 

    typealias Index = Int 

    private let distributions : [Distribution] 

    init(distributions : [Distribution]){ 
     self.distributions = distributions 
    } 

    var startIndex: Int { 
     return 0 
    } 

    var endIndex: Int { 
     return distributions.count 
    } 

    subscript(i: Int) -> Distribution { 
     return distributions[i] 
    } 

} 

struct Distribution{ 
    let id : Int 
    let dateStart : String 
    let dateEnd : String 
} 

Thnx um Hilfe.

+0

Was sind 'Verteilungen'? – Code

+0

Es ist mein Wert Objekt – JaSHin

+0

Zeigen Sie den Code dafür? – Code

Antwort

1

Ich kann mir zwei Möglichkeiten vorstellen, wie Sie dies tun können. One, verwenden Sie ignoreNil auf Ihrem Signalproduzenten.

let distributions = MutableProperty<Distributions?>(nil) 

distributions.producer 
    .ignoreNil() 
    .startWithNext { distributions in 
     // distributions is of type [Distribution] 
    } 

Zwei setzen den Anfangswert des MutableProperty zu einem leeren Distributions Objekt.

let distributions = MutableProperty<Distributions>(Distributions(distributions: [])) 

// You can skip the initial value if need be 
distributions.producer.skip(1) 
+1

Für diejenigen, die ab Mai 2017 sehen, ist 'ignoreNil()' jetzt 'skipNil()'. – BigSauce

Verwandte Themen