2014-11-04 2 views
0

Я пытаюсь выяснить, как фильтровать данные табличного представления на основе числового значения, введенного в строке поиска. например, у меня есть табличный вид со списком лиц и вы хотите отображать лиц, которым около 20 лет ..... любая помощь будет очень благодарнаПанель поиска - числовое значение фильтрации в swift

Я мог бы искать числовые значения, как советовал Раджив, преобразовывая строку в двойной. ниже мой код. FUNC filtercontentForSearchText (SearchText: String) {

var searchNumber = NSNumberFormatter().numberFromString(searchText)?.doubleValue 

    filteredCandies = candies.filter({ (candy : Candy) -> Bool in 


    candy.cal < searchNumber 


    }) 

}

Это работает для <, == и> фильтрации. моей конечной целью является поиск диапазона данных между 0,9 х введенного значения до 1,1 х введенного значения. Когда вы добавляете какую-либо арифметическую операцию в searchNumber (скажем, 0.9 * searchNumber), я получаю сообщение об ошибке «Double? Is unwrapped». и если я развожу его, то ошибка компиляции идет, но во время работы, как только я касаюсь строки поиска, программа существует, и в ней говорится «фатальная ошибка: неожиданно найденная нуль при развертывании необязательного значения». Любая помощь в решении этого было бы оценен

+0

интегрировали вы панель поиска и поиска контроллер дисплея выше вашего представления таблицы? –

+0

У меня нет проблем с поиском и отображением значений по имени человека, так как это строка. Но не знаете, как читать числовые значения. Нет я не интегрированный контроллер поиска – Magesh

ответ

0

Я решил эту проблему со следующими изменениями. Вот мой исправленный код

функ filtercontentForSearchText (SearchText: String) {

var searchNumber = NSNumberFormatter().numberFromString(searchText)?.doubleValue 


if searchNumber != nil { 

    filteredCandies = candies.filter({ (candy : Candy) -> Bool in 


    candy.cal > searchNumber! * 0.9 && 
     candy.cal < searchNumber! * 1.1 



    }) 

    } 

}

0

Перейдите по этой ссылке и добавить строку поиска выше вашего табличного

http://www.raywenderlich.com/76519/add-table-view-search-swift

В методе shouldReloadTableForSearchString делегата, вы получите строку поиска, что пользователь имеет вошел. Это также поможет включить только цифровую клавиатуру. Преобразуйте это в число и отфильтруйте свою модель в отдельную коллекцию. После этого в методах cellForRowAtIndexPath и numberOfRows верните значения коллекции в зависимости от активного вида таблицы

+0

отображения функ filtercontentForSearchText (SearchText: String) { вар searchNumber = NSNumberFormatter() numberFromString (SearchText) ?. doubleValue filteredCandies = candies.filter ({(конфеты:. Candy) -> Bool in candy.cal Magesh

Смежные вопросы