Swift ';布尔';不可转换为';()抛出->;布尔';
我刚刚开始学习RxSwift,面临着奇怪的编译时错误。 有效的代码:Swift ';布尔';不可转换为';()抛出->;布尔';,swift,reactive-programming,rx-swift,Swift,Reactive Programming,Rx Swift,我刚刚开始学习RxSwift,面临着奇怪的编译时错误。 有效的代码: let createChatFlow = createChatBinding.createAction .withLatestFrom(createChatInputs) .map { ($0.0, $0.1, $0.2.map {$0.id}) } .filter { !$0.2.isEmpty && $0.1?.isEmpty ==
let createChatFlow = createChatBinding.createAction
.withLatestFrom(createChatInputs)
.map { ($0.0, $0.1, $0.2.map {$0.id}) }
.filter { !$0.2.isEmpty && $0.1?.isEmpty == false }
.flatMapLatest { element in
return self.conversationManager.create(chat: Chat(), with: element.0 ?? LetterImage(size: kDefaultAvatarSize, fullName: element.1 ?? kEmptyStringValue).getImage()!)
}
说明:
createChatInputs - tuple (UIImage?, String?, [User])
但当我在最后一个闭包中编写一些代码时:
.flatMapLatest { element in
var chat = Chat()
chat.owner = AppState.current.user.id
return self.conversationManager.create(chat: chat, with: element.0 ?? LetterImage(size: kDefaultAvatarSize, fullName: element.1 ?? kEmptyStringValue).getImage()!)
}
编译器说:
“Bool”不能转换为“()throws->Bool”
,并用过滤器指向行。任何帮助都将不胜感激。请尝试使用.flatMapLatest{element->in…
。
如果flatMap
块只包含一行,则返回类型-是不必要的。谢谢,我对错误消息感到非常困惑:)