Reputation: 4258
good morning all together,
i would like to request all data of my coredata where the name field is "meyer"
at the moment, i do it like this way, but i think, this is not the best way to do this.
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
var lebensmittel = [LM_ITEMS]()
var LM_ITEM:NSManagedObject!
var x :Int = 0
var NumberOfLM :Int = 0
func DatenAbrufen() {
let fetchRequest = NSFetchRequest(entityName: "LM_ITEMS")
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [LM_ITEMS] {
lebensmittel = fetchResults
while x < fetchResults.count {
var TEMP_LM_ITEM = lebensmittel[x]
if TEMP_LM_ITEM.name == "meyer" {
LM_ITEM = lebensmittel[x]
NumberOfLM++
}
x++
}
}
LebensmittelTable.reloadData()
}
Upvotes: 1
Views: 64
Reputation: 469
Use a predicate with your NSFetchRequest instead of looping:
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext!
var lebensmittel = [LM_ITEMS]()
func DatenAbrufen() {
var fetchRequest = NSFetchRequest(entityName: "LM_ITEMS")
fetchRequest.predicate = NSPredicate(format: "name = %@", "meyer")
if let fetchResults = managedObjectContext.executeFetchRequest(fetchRequest, error: nil) as? [LM_ITEMS] {
lebensmittel = fetchResults
}
LebensmittelTable.reloadData()
}
Upvotes: 2