archakov06
@archakov06
Frontend-разработчик (ReactJS)

Сортировка строк UITableView при помощи UISegmentControl?

Хочу реализовать сортировку записей по датам, при этом используя UISegmentControl.

UISegmentControl содержит три столбца: Все, Сегодня, Ближайщие

При сортировке строк я использую 3 - NSMutableArray

person - тут список людей первоначальный для обработки cellForRowAtIndexPath.
original_person - резервный список (копия person). Для тех случай, когда главный список пуст или был изменен.
b_person - в нем будут храниться те строки, которые соответствуют условию.

Вопрос: Почему выводит такую ошибку?
Could not cast value of type '__NSDictionaryM' (0x101bafd38) to 'NSMutableArray' (0x101baf978).


На эту строку:
if (ok==1) { b_person = h as! NSMutableArray }

Сам код:
b_person.removeAllObjects()
            person = original_person
            var shortDate: String {
                let dateFormatter = NSDateFormatter()
                dateFormatter.dateFormat = "dd"
                return dateFormatter.stringFromDate(NSDate())
            }
            var day1: NSInteger = 0;
            var day2: NSInteger = 0;
            var day3: NSInteger = 0;
            var day4: NSInteger = 0;
            var date: String = "";
            var ok: Int = 0;
            
            let dayNow: NSInteger = Int(shortDate)!;
            for h in person {
                
                ok = 0;
                
                let date1 = h["date"] as? NSString
                let date2 = h["date2"] as? NSString
                let date3 = h["date3"] as? NSString
                let date4 = h["date4"] as? NSString
                
                if (date1!.componentsSeparatedByString(".")[0] != "") {
                    day1 = Int(date1!.componentsSeparatedByString(".")[0])!;
                } else { day1 = 0 }
                if (date2!.componentsSeparatedByString(".")[0] != "") {
                    day2 = Int(date2!.componentsSeparatedByString(".")[0])!;
                } else { day2 = 0 }
                if (date3!.componentsSeparatedByString(".")[0] != "") {
                    day3 = Int(date3!.componentsSeparatedByString(".")[0])!;
                } else { day3 = 0 }
                if (date4!.componentsSeparatedByString(".")[0] != "") {
                    day4 = Int(date4!.componentsSeparatedByString(".")[0])!;
                } else { day4 = 0 }
                
                if (day1>=dayNow) {date=date1! as String; ok = 1;}
                if (day2>=dayNow) {date=date2! as String; ok = 1;}
                if (day3>=dayNow) {date=date3! as String; ok = 1;}
                if (day4>=dayNow) {date=date4! as String; ok = 1;}
                
                
                if (ok==1) { b_person = h as! NSMutableArray }
            }
            person = b_person
            self.tableView!.reloadData()


P.S: Я начинаю только кодить на Swift'e и понимаю, что это быдло-код :) Прошу только помочь решить эту проблему
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы