2014-11-04 67 views
0

我想了解如何根据在搜索栏中输入的数值过滤表视图数据。例如我有桌面视图与人员列表,并希望显示20岁左右的人......任何帮助将不胜感激搜索栏 - 在swift中过滤数值

我可以搜索数字值由Rajeev建议通过将字符串转换为双。下面是我的代码。 FUNC filtercontentForSearchText(SEARCHTEXT:字符串){

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

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


    candy.cal < searchNumber 


    }) 

}

它工作<,==和>过滤。我的最终目标是搜索0.9 x输入值到1.1 x输入值之间的数据范围。当添加任何算术运算searchNumber(说0.9 * searchNumber)我得到一个错误“双?是unwrapped”。如果我打开它编译错误正在进行,但只要我触摸搜索栏运行程序存在,它说“致命错误:意外地发现零,同时解开一个可选值”。解决任何帮助,这将是非常赞赏

+0

您已经将搜索栏和搜索表视图上面显示控制器? – 2014-11-04 12:00:48

+0

我没有问题,因为它是一个字符串的人进行搜索和显示值的名称。但不知道如何读取数值。没有我还没有集成搜索显示控制器 – Magesh 2014-11-04 12:10:20

回答

0

我解决了此问题,并进行了以下更改。这是我纠正代码

FUNC filtercontentForSearchText(SEARCHTEXT:字符串){

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

FUNC filtercontentForSearchText(SEARCHTEXT:字符串){ 变种searchNumber = NSNumberFormatter()numberFromString(SEARCHTEXT)?.的doubleValue filteredCandies = candies.filter({(糖果:糖果) - > Bool in candy.cal Magesh 2014-11-05 11:05:59