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