【问题标题】:FetchRequest - NSArray element failed to match the Swift Array Element type - Swift 2.0FetchRequest - NSArray 元素无法匹配 Swift Array 元素类型 - Swift 2.0
【发布时间】:2015-09-27 01:41:02
【问题描述】:

我想做一个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

感谢您的帮助!

【问题讨论】:

  • 获取请求返回的数组中的内容。它不是Voiture 对象。可能是NSManagedObject 个实例。
  • 你可以回答你自己的问题(而不是在你的问题中发布解决方案),让将来遇到这个问题的人更容易。
  • 好的,谢谢你。

标签: ios iphone swift core-data nsfetchrequest


【解决方案1】:

我遇到了同样的问题。 问题是由于未在模型文件中设置实体的类属性。

【讨论】:

  • 非常感谢您指出这一点。还需要这篇文章stackoverflow.com/questions/26613971/… 让它为我工作。我必须包括 @objc(ClassName)
  • 除此之外,设置类名后,将模块名设置为“当前产品模块”。
【解决方案2】:

解决方案

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


if (voitures!.count > 0) {

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

        print((voiture.valueForKey("nom") as? String))
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    相关资源
    最近更新 更多