私は単語ゲームに取り組んでおり、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
}
}
}
しかし、フィルタリング機能を使用するために、私は私が(例えば、resultFilteredByPredicate.wordを得る)直接の結果では動作しないことができることを意味NSArrayのに変換する必要があります。私は、例えば、述語と不格好なソリューションを持っています。
また、私はおそらくこのすべての間違った方法について考えているように感じます。最初はすべてが配列に入っているので、最初はsqliteデータベースを使う価値が失われています。
データベースをよりよく操作するための推奨されるアプローチはありますか?
事前のお手伝いをさせていただきます。データベースを作るために
SQLiteの質問では、Core Dataの質問です。 – rmaddy
意味があります。コアデータをタグとして追加しました。ありがとうございました – enesefuu