2016-04-11 110 views
0

有沒有可以過濾nil的操作員?我來最接近的是這裏所說的解決方案:https://github.com/ReactiveX/RxSwift/issues/209#issuecomment-150842686忽略/過濾無

相關摘錄:

public protocol OptionalType { 
    func hasValue() -> Bool 
} 

extension Optional: OptionalType { 
    public func hasValue() -> Bool { 
     return (self != nil) 
    } 
} 

public extension ObservableType where E: OptionalType { 
    @warn_unused_result(message="http://git.io/rxs.uo") 
    public func notNil() -> Observable<E> { 
     return self.filter { $0.hasValue() } 
    } 
} 

然而,.notNil()後,E仍然是可選的,因此後續的串連運營商仍然看self作爲Observer<E>其中E是可選。所以我仍然需要一個額外的運營商:

.map { (username: String?) -> String in 
    return username! 
} 

我必須缺少的東西。這似乎是一個非常普遍的需求。

回答