2016-06-19 52 views
1

我可以創建具有非可選值的空可變屬性(或其他類型的屬性)嗎?具有非可選值的空可變屬性

例如,這是作品:

let distributions = MutableProperty<Distributions?>(nil) 

,但我需要的東西是這樣的:

let distributions = MutableProperty<Distributions>() 

分配對象:

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的幫助。

+0

什麼是「分佈」? – Code

+0

這是我的價值對象 – JaSHin

+0

顯示它的代碼? – Code

回答

1

我可以想出兩種方法可以做到這一點。一,在你的信號發生器上使用ignoreNil

let distributions = MutableProperty<Distributions?>(nil) 

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

二,MutableProperty的初始值設置爲一個空Distributions對象。

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

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

對於截至2017年5月的用戶,'ignoreNil()'現在是'skipNil()'。 – BigSauce