update tutorial query existing example enable data adding swift core-data nsfetchrequest

swift - tutorial - ¿Cuál es la mejor manera de hacer una solicitud de búsqueda en CoreData?



swift 4 core data tutorial (1)

Estoy tratando de encontrar la forma más eficiente de hacer una solicitud de búsqueda contra CoreData. Anteriormente, primero he comprobado si existía un error, y si no lo hice, he verificado la matriz de la entidad devuelta. ¿Hay una manera más rápida de hacer esto? ¿Es algo así una forma aceptada de hacer la solicitud?

let personsRequest = NSFetchRequest(entityName: "Person") var fetchError : NSError? //Is it okay to do the fetch request like this? What is more efficient? if let personResult = managedObjectContext.executeFetchRequest(personRequest, error: &fetchError) as? [Person] { println("Persons found: /(personResult.count)") } else { println("Request returned no persons.") if let error = fetchError { println("Reason: /(error.localizedDescription)") } }

Saludos cordiales, Fisher


Comprobar el valor de retorno de executeFetchRequest() primero es correcto. El valor de retorno es nil si la recuperación falló, en ese caso se establecerá la variable de error, por lo que no es necesario verificar if let error = fetchError .

Tenga en cuenta que la solicitud no falla si no existe ningún objeto (coincidencia). En ese caso, se devuelve una matriz vacía.

let personRequest = NSFetchRequest(entityName: "Person") var fetchError : NSError? if let personResult = managedObjectContext.executeFetchRequest(personRequest, error: &fetchError) as? [Person] { if personResult.count == 0 { println("No person found") } else { println("Persons found: /(personResult.count)") } } else { println("fetch failed: /(fetchError!.localizedDescription)") }