我正在製作一個文字遊戲,並使用sqlite數據庫捆綁了一個完整的英文單詞列表。我試圖找到最好的方式來搜索數據庫的給定字符串,以確定它是否是一個字。更好的方法來快速查詢sqlite數據庫
在這一點上,我可以得到整個數據庫進行到一個數組:
func fetchWords() {
if let managedObjectContext = (UIApplication.shared.delegate as? AppDelegate)?.managedObjectContext {
let wordsFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "EnglishWord")
do {
englishWords = try managedObjectContext.fetch(wordsFetch) as! [EnglishWord]
print(englishWords[123323].word)
//Prints "injustices"
} catch {
//error handling
}
}
}
現在。我真正想做的是傳入一個給定的字符串,看看它是否作爲我的數據庫中的單詞存在。我有謂詞笨重的解決方案,例如:
func fetchWordsToArray() {
if let managedObjectContext = (UIApplication.shared.delegate as? AppDelegate)?.managedObjectContext {
let wordsFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "EnglishWord")
let searchWord = ["dastardly"]
let searchPredicate = NSPredicate(format: "word = %@", argumentArray: searchWord)
do {
englishWords = try managedObjectContext.fetch(wordsFetch) as! [EnglishWord]
let resultFilteredByPredicate = (englishWords as NSArray).filtered(using: predicate)
print(resultFilteredByPredicate)
} catch {
//error handling
}
}
}
但爲了使用過濾功能,我要轉換爲一個NSArray這意味着我不能直接與工作成果(如獲得resultFilteredByPredicate.word) 。
此外,感覺就像我可能會用這種錯誤的方式去做。由於首先必須進入數組,所以我必須首先喪失使用sqlite數據庫的許多價值。
任何建議的方法,以更好地使用數據庫?
非常感謝您的幫助!
根據您發佈的代碼,這ISN對於SQLite的問題,這是一個核心數據問題。 – rmaddy
有道理。只需將核心數據添加爲標籤即可。謝謝 – enesefuu