'Bool'不能转换为'()抛出 - >布尔”

时间:2017-08-23 14:44:50

标签: 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 == 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行。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

试试.flatMapLatest { element -> <RETURN TYPE> in ...。 如果flatMap块只包含一行,则返回类型 - 不是必需的。