FetchRequest - NSArray元素无法匹配Swift数组元素类型 - Swift 2.0

Ant*_*nio 5 iphone core-data nsfetchrequest ios swift

我想做一个NSFetchRequest将我的数据显示到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")
    }

}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我得到了错误:

fatal error: NSArray element failed to match the Swift Array Element type

谢谢你的帮助 !

mun*_*eeb 14

我有同样的问题.问题是由于未在模型文件中设置实体的类属性.

在此输入图像描述


Ant*_*nio 3

解决方案

var voitures: [NSManagedObject]?  = [NSManagedObject]()


if (voitures!.count > 0) {

        let voiture: NSManagedObject = voitures![indexPath.row]

        print((voiture.valueForKey("nom") as? String))
    }
Run Code Online (Sandbox Code Playgroud)