Есть ли лучший способ отфильтровать массив с несколькими условиями - PullRequest
0 голосов
/ 27 декабря 2018

Я использую выпадающее меню, помогающее фильтровать массив и затем помещать данные из массива обратно в collectionView, но, когда я пытаюсь попытаться запустить функцию, которая должна отсортировать и перезагрузить collectionView, экран становится пустым.

Я попытался установить базовую линию, а затем отфильтровать массив.

extension RestaurantDetails: menuViewDelegate {

    func didChangeMealSize(mealSizeText: String) {
        self.mealSize = mealSizeText
        print("Usage", self.mealSize)
    }

    func didChangeDrink(drinkName: String) {
        self.drink = drinkName
        print("drink", self.drink)
    }

    func didChangeProductType(productType: String) {
        self.productFilter = productType
        print("Filter", self.productFilter)
    }

    func didchangeSwitch(FriesSwitch: UISwitch) {

         if FriesSwitch.isOn == true {
            self.FriesOnly = true
            print("FRIES Only")
         } else {
            self.FriesOnly = false
            print("Drink & FRIES")
         }   

    func didendSelection(button: UIButton) {

        print("ran Here")

        if (SegmentType == "All" && FriesSwitch == false && mealSize == RestaurantDetails.allProductIdentifier && productFilter == RestaurantDetails.allProductIdentifier && price == 0.0) {
            filteredProducts = products
        } else {
            filteredProducts = products.filter { ($0.usage?.lowercased() ?? "") == bestFor}
        }
        productCollection.reloadData()
    }

Я хочу отфильтровать по выбранному: Размер еды, Пить, и с или без картофеля фри.Когда didendSelection запущен, все свойства выбранных переменных печатаются, но collectionView возвращается пустым.

...