0
我有一個基本的UITableViewController,UISearchResultsUpdating和我的數據保存在一個結構數組內像這樣的查詢一個結構:以更新UisearchController
後的搜索功能的代碼,如果import UIKit
import Foundation
class SearchTableViewController: UITableViewController, UISearchResultsUpdating {
struct Melody {
let category : String
let name : String
let location : String
}
let songs = [Melody(category: "Morgen Lieder", name: "Mein Gott! nun ist e# wieder Morgen", location: "Lutheris¡ Gesangbu¡ (Lied 367)"),
Melody(category: "Morgen Lieder", name: "Auf, auf‘ mein Geist! zu loben", location: "Lutheris¡ Gesangbu¡ (Lied 358)"),
Melody(category: "Morgen Lieder", name: "Auf! ermunt‘re di¡ mein Sinn", location: "Lutheris¡ Gesangbu¡ (Lied 455)"),
Melody(category: "Morgen Lieder", name: "Auf! meine Seel‘! und dank‘ dem Herren", location: "Lutheris¡ Gesangbu¡ (Lied 454)"),
Melody(category: "Morgen Lieder", name: "Christe! Wahre# Seelenli¡t", location: "Lutheris¡ Gesangbu¡ (Lied 359)"),
Melody(category: "Morgen Lieder", name: "Da# walte Gott! der mi¡ au# lauter Gnaden", location: "Lutheris¡ Gesangbu¡ (Lied 360)"),
Melody(category: "Morgen Lieder", name: "Die Na¡t ist nun dahin", location: "Lutheris¡ Gesangbu¡ (Lied 361)"),
Melody(category: "Morgen Lieder", name: "Du heilige Dreifältigkeit", location: "Lutheris¡ Gesangbu¡ (Lied 682)"),]
var filteredSongs = [Melody]()
var resultSearchController = UISearchController()
override func viewDidLoad() {
super.viewDidLoad()
self.resultSearchController = UISearchController(searchResultsController: nil)
self.resultSearchController.searchResultsUpdater = self
self.resultSearchController.dimsBackgroundDuringPresentation = false
self.resultSearchController.searchBar.sizeToFit()
self.tableView.tableHeaderView = self.resultSearchController.searchBar
self.tableView.reloadData()
}
現在發言,我m試圖寫一個函數來更新我的UiSearchController像這樣;
func updateSearchResultsForSearchController(sear,chController: UISearchController)
{
self.filteredSongs.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (Melody as NSArray).filteredArrayUsingPredicate(searchPredicate)
self.filteredSongs = array as! [String]
self.tableView.reloadData()
}
,但我得到一個錯誤:「SearchTableViewController.Melody.type」上線是無法轉換爲「NSArray的」
let array = (Melody as NSArray).filteredArrayUsingPredicate(searchPredicate)
因此,如何將我的結構轉換爲一個NSArray,或如何當我的數據在Struct中時,是否更新我的SearchController?
在此先感謝!!!!
旋律的NSArray - >歌曲! NSArray –
Hi Quang,它仍然不會接受它....你能提供完整的代碼行嗎? – DavidTschetter