在我iOS
Xcode8
項目中使用Swift
,我執行fetch
我Core-Data
:取正導致重複項
func searchFoods() {
let context: NSManagedObjectContext = appDel.managedObjectContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Foods")
print("Searching Database for \(searchVariable)...")
var subPredicates : [NSPredicate] = []
let codeSearch = NSPredicate(format: "codeText contains[c] %@", "\(searchVariable)")
subPredicates.append(codeSearch)
request.predicate = NSCompoundPredicate(orPredicateWithSubpredicates: subPredicates)
request.returnsObjectsAsFaults = false
do {
let results = try context.fetch(request)
if results.count > 0 {
for result in results as! [NSManagedObject] {
if let item = result.value(forKey: "title") as? String {
// Maybe put a loop of some kind to only append the found item count??
searchArray.append(item)
myTableView.reloadData()
}
}
}
} catch {
print("Fetch failed...")
}
}
但是我searchArray
創建的搜索結果的[String]
我所知道的許多重複不在那裏;它列出他們2到3次。無法弄清楚如何將附加限制爲結果計數量。如果我搜索水果,它可能會返回像bananas, strawberries, peaches, oranges, bananas, strawberries, peaches, oranges
等array
,重複。有人可以幫忙嗎?
現在最明顯的問題是,你怎麼知道他們不是真的存在? –
因爲我正在測試這個應用程序,並且每次運行應用程序時都刪除所有以前的數據並將新數據加載到CoreData中。我現在再次測試。去住它不會是這樣。 – ChallengerGuy