搜索栏-筛选swift中的数值

搜索栏-筛选swift中的数值,swift,searchbar,Swift,Searchbar,我试图找出如何根据搜索栏中输入的数值过滤表视图数据。例如,我有一个带有人员列表的表格视图,希望显示20岁左右的人员……任何帮助都将不胜感激 我可以按照Rajeev的建议,通过将字符串转换为double来搜索数值。下面是我的代码。 func filtercontentForSearchText(searchText:String){ var searchNumber=NSNumberFormatter().numberFromString(searchText)?.doubleValue filt

我试图找出如何根据搜索栏中输入的数值过滤表视图数据。例如,我有一个带有人员列表的表格视图,希望显示20岁左右的人员……任何帮助都将不胜感激

我可以按照Rajeev的建议,通过将字符串转换为double来搜索数值。下面是我的代码。
func filtercontentForSearchText(searchText:String){

var searchNumber=NSNumberFormatter().numberFromString(searchText)?.doubleValue
filteredCandies=candies.filter({(candy:candy)->Bool-in
candy.cal
}


它正在进行过滤。我的最终目标是搜索输入值的0.9倍到1.1倍之间的数据范围。当将任何算术运算添加到searchNumber(例如0.9*searchNumber)时,我得到一个错误“Double?已展开”。如果我打开它,编译错误将继续,但在运行时,只要我触摸搜索栏,程序就会存在,并显示“致命错误:在打开可选值时意外发现零”。如果您有任何关于解决此问题的帮助,我们将不胜感激。

请点击此链接,并在您的表格视图上方添加搜索栏


shouldReloadTableForSearchString
delegate方法中,您将获得用户输入的搜索字符串。它还将有助于只启用数字键盘。将其转换为一个数字,并将模型过滤到单独的集合中。在此之后,在cellForRowAtIndexPath和numberOfRows方法中,根据处于活动状态的表视图返回集合的值。我通过以下更改解决了此问题。这是我更正的代码


func filtercontentForSearchText(searchText:String){

var searchNumber=NSNumberFormatter().numberFromString(searchText)?.doubleValue
如果searchNumber!=nil{
filteredCandies=candies.filter({(candy:candy)->Bool-in
candy.cal>searchNumber!*0.9&&
candy.cal

}

您是否集成了表视图上方的搜索栏和搜索显示控制器?我在搜索和按人名显示值时没有问题,因为它是一个字符串。但不知道如何读取数值。否我没有集成搜索显示控制器Func filtercontentForSearchText(searchText:String){var searchNumber=NSNumberFormatter().numberFromString(searchText)?.doubleValue filteredCandies=candies.filter({(candy:candy)->Bool in candy.cal var searchNumber = NSNumberFormatter().numberFromString(searchText)?.doubleValue filteredCandies = candies.filter({ (candy : Candy) -> Bool in candy.cal < searchNumber })
    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



     })

    }