0
私は以下のクラスを持っていますが、関数一致を使ってSongTitle
とESongTitle
の両方の文字列を検索しています。クラス外の関数の使い方
class KeerthanaiArray: NSObject {
var SongTitle: String = String()
var SongLyrics: String = String()
var ESongTitle: String = String()
init(SongTitle: String, SongLyrics:String, ESongTitle: String) {
self.SongTitle = SongTitle
self.SongLyrics = SongLyrics
self.ESongTitle = ESongTitle
}
func match(string:String) -> Bool {
return SongTitle.containsString(string) || ESongTitle.containsString(string)
}
}
私は、そのクラスの外で機能の試合を使用することができませんでしたので、私は以下のロジック使用してみました:
for keerthanaiArrayObject in keerthanaiArray {
let searchr = (keerthanaiArrayObject.match(searchText.lowercaseString))}
しかし、今、私はそのループのためのsearchr
外を参照してくださいすることができませんが。これらの機能を参考にしてください。
私がBoolとして検索エンジンを宣言すると、私の次のコードは機能しません。私は以下のコードを持っています。self.searchResults = searchr.filter({(searchr) - > Bool in – Jebus
これで、 'Bool?'というエラーメッセージの値が返されます。 'filter'というメンバはありません – Jebus
あなたのコードは待ちません意味をなさない あなたのマッチ機能を使用すると、この行でsearchr' 'に割り当てるブール値権を返します。? 'てみましょうsearchr =(keerthanaiArrayObject.match(searchText.lowercaseString)) ' だから、' searcher'がですタイプBoolとフィルタは、配列やマップ上でのみbool値には使用できません。 –