我有一个返回Observable
的dictionary
:
func myFunc() -> Observable<[String : MyClass]> {
return service.getDictionary()
}
如何获得keys
和values
?
viewModel.myFunc().subscribe(onNext: {
print("🐱", $0 )
}).disposed(by: disposeBag)
[没有.key
或.value
之类的属性。是否使用map
或flatMap
或它如何工作?
已测试RxSwift 5.0
func myFunc() -> Observable<[String : String]> {
let dict:[String:String] = ["key0": "value0", "key1": "value1", "key2": "value2","key3" : "value3"]
return Observable.just(dict)
}
myFunc()
.map { (dict) -> [(String,String)] in
let keys = Array(dict.keys)
var key_value_array = Array<(String,String)>()
for key in keys {
let key_value_tuple = (key,dict[key]!)
key_value_array.append(key_value_tuple)
}
return key_value_array
}.flatMap { Observable.from($0) }
.subscribe(onNext: { (tuple) in
print("Key is \(tuple.0)")
print("Value is \(tuple.1)")
}).disposed(by: disposeBag)
然后登录控制台为
Key is key0
Value is value0
Key is key1
Value is value1
Key is key3
Value is value3
Key is key2
Value is value2