I want to do a NSFetchRequest
to display my data into a UICollectionView
:
import UIKit
import CoreData
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDelegate.managedObjectContext
class GarageViewController: UIViewController, UICollectionViewDelegate,UICollectionViewDataSource {
@IBOutlet weak var backgroundView: UIImageView!
@IBOutlet weak var collectionView: UICollectionView!
var voitures: [Voiture] = [Voiture]()
override func viewDidLoad() {
super.viewDidLoad()
collectionView.reloadData()
let fetchRequest = NSFetchRequest(entityName: "Voiture")
fetchRequest.resultType = .DictionaryResultType
do {
try voitures = context.executeFetchRequest(fetchRequest) as! [Voiture]
}
catch let fetchError as NSError {
print("VoitureFetch error: \(fetchError.localizedDescription)")
}
if (voitures.count > 0) {
for voiture in voitures as [Voiture] {
print(voiture.nom!)
}
}
else {
print("Aucune voiture")
}
}
When I run the code I get that error :
fatal error: NSArray element failed to match the Swift Array Element type
Thank's for your help !
I had the same problem. The issue was due to not setting the class property for the entity in model file.
var voitures: [NSManagedObject]? = [NSManagedObject]()
if (voitures!.count > 0) {
let voiture: NSManagedObject = voitures![indexPath.row]
print((voiture.valueForKey("nom") as? String))
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With