FetchRequest - NSArray 元素无法匹配 Swift 数组元素类型 - Swift 2.0
FetchRequest - NSArray element failed to match the Swift Array Element type - Swift 2.0
我想做一个 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")
}
}
当我 运行 代码时,我得到了那个错误:
fatal error: NSArray element failed to match the Swift Array Element type
感谢您的帮助!
解决方案
var voitures: [NSManagedObject]? = [NSManagedObject]()
if (voitures!.count > 0) {
let voiture: NSManagedObject = voitures![indexPath.row]
print((voiture.valueForKey("nom") as? String))
}
我遇到了同样的问题。
问题是由于没有为模型文件中的实体设置 class 属性。
我想做一个 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")
}
}
当我 运行 代码时,我得到了那个错误:
fatal error: NSArray element failed to match the Swift Array Element type
感谢您的帮助!
解决方案
var voitures: [NSManagedObject]? = [NSManagedObject]()
if (voitures!.count > 0) {
let voiture: NSManagedObject = voitures![indexPath.row]
print((voiture.valueForKey("nom") as? String))
}
我遇到了同样的问题。 问题是由于没有为模型文件中的实体设置 class 属性。