Reputation: 6723
I have code, which fetches core data
var appDelegate : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
var managedContext : NSManagedObjectContext = appDelegate.managedObjectContext!
let request = NSFetchRequest(entityName: "QuestionDB")
request.returnsObjectsAsFaults = false
if let results = managedContext.executeFetchRequest(request, error: nil)
it returns array of AnyObject
I need it to return array of objects with type of [Question]
when i cast
var appDelegate : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
var managedContext : NSManagedObjectContext = appDelegate.managedObjectContext!
let request = NSFetchRequest(entityName: "QuestionDB")
request.returnsObjectsAsFaults = false
if let results = managedContext.executeFetchRequest(request, error: nil) as? [Question] {
println("This is result of loadFromDb \(results)")
}
it returns nil
How can i fix it ?
Upvotes: 3
Views: 2219
Reputation: 5182
Check class name in data model inspector of Entity in data model by
select your app's .xcdatamodeld
-> select Entity
and in data model inspector
Upvotes: 1
Reputation: 947
Try this:
let fetchRequest = NSFetchRequest(entityName:"QuestionDB")
var error: NSError?
let fetchedResults = managedObjectContext.executeFetchRequest(fetchRequest, error: &error) as! [NSManagedObject]?
if let results = fetchedResults {
return results as! [QuestionDB]
} else {
fatalError("Could not fetch \(error), \(error!.userInfo)")
}
If your class name is Question
you have to set it in the model inspector.
Upvotes: 0