'Bool' 不能转换为 '() throws -> Bool'
'Bool' is not convertible to '() throws -> Bool'
我刚开始学习 RxSwift,遇到了奇怪的编译时错误。
有效代码:
let createChatFlow = createChatBinding.createAction
.withLatestFrom(createChatInputs)
.map { ([=11=].0, [=11=].1, [=11=].2.map {[=11=].id}) }
.filter { ![=11=].2.isEmpty && [=11=].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' is not convertible to '() throws -> Bool'
并指向 filter
行。任何帮助将不胜感激。
尝试.flatMapLatest { element -> <RETURN TYPE> in ...
。
如果 flatMap
块仅包含一行,则 return 类型 - 不是必需的。
我刚开始学习 RxSwift,遇到了奇怪的编译时错误。 有效代码:
let createChatFlow = createChatBinding.createAction
.withLatestFrom(createChatInputs)
.map { ([=11=].0, [=11=].1, [=11=].2.map {[=11=].id}) }
.filter { ![=11=].2.isEmpty && [=11=].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' is not convertible to '() throws -> Bool'
并指向 filter
行。任何帮助将不胜感激。
尝试.flatMapLatest { element -> <RETURN TYPE> in ...
。
如果 flatMap
块仅包含一行,则 return 类型 - 不是必需的。