множественная карта с rxswift - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь создать разделы для табличного представления из массива элементов, для которого каждый элемент массива является элементом разделов.

Мой вопрос: как заставить cart.map вернуть массив
CartProductSection ([CartProductSection]) вместо назначения его переменной.Спасибо.

Мой код позволяет корзине: BehaviorRelay struct Вывести {let items: Observable <[CartProductSection]>}

           var sectionPerSupplierItems: [CartProductSection] = []

            _ = cart.map { (cart)  in 
                let cartItemsPerSupplier = self.sortModelItemPerSection(items: cart.items)

                print(cart.items.count)
                 _ = cartItemsPerSupplier.map {  (cartItemsPerSupplier) in

                    var items: [CartProductSectionItem] = []
                    for cartItem in cartItemsPerSupplier.cartItems {
                         items.append(CartProductSectionItem.cartItem(viewModel: CartItemViewModel(with: cartItem)))
                    }

                    sectionPerSupplierItems.append(CartProductSection.cartItemModel
(title: cartItemsPerSupplier.companyName, items: items))
                }
            }

            return Output(items: Observable.just(sectionPerSupplierItems))

1 Ответ

0 голосов
/ 01 января 2019

Скорее всего, я бы написал такой код (я все еще делаю здесь несколько предположений):

let items = cart
    .map { [unowned self] in self.sortModelItemPerSection(items: $0.items) }
    .map { cartItemsPerSuppliers in
        cartItemsPerSuppliers.map { CartProductSection.cartItemModel(from: $0) }
    }
return Output(items: items)

Выше предполагается, что нечто подобное существует:

extension CartProductSection {
    static func cartItemModel(from supplier: CartItemsPerSupplier) -> CartProductSection {
        return cartItemModel(title: supplier.companyName, items: supplier.cartItems.map { CartProductSectionItem.cartItem(viewModel: CartItemViewModel(with: $0)) })
    }
}
...