2016-04-11 113 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! 
} 

我必须缺少的东西。这似乎是一个非常普遍的需求。

回答