2014-11-04 84 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