这是我第一次尝试在核心数据之间保存和检索自定义数据,但我遇到了一个错误,说:
致命错误:无法从Objective-C桥接数组
当我试图加载数据时。
我的代码如下所示,arrayOfNames声明为[String]

@IBAction func saveTap(sender: AnyObject) {

    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let contxt: NSManagedObjectContext = appDel.managedObjectContext!
    let en = NSEntityDescription.entityForName("Indexes", inManagedObjectContext: contxt)


    let arrayData: NSData = NSKeyedArchiver.archivedDataWithRootObject(arrayOfNames)

    let newIndex = Indexes(entity: en!, insertIntoManagedObjectContext: contxt)
    newIndex.monday = arrayData

    println(newIndex.monday)

    contxt.save(nil)

}

@IBAction func loadTap(sender: AnyObject) {

    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context:NSManagedObjectContext = appDel.managedObjectContext!

    let fetchReq = NSFetchRequest(entityName: "Indexes")
    let en = NSEntityDescription.entityForName("Indexes", inManagedObjectContext: context)

    var myList:[String] = context.executeFetchRequest(fetchReq, error: nil) as! [String]

    println(myList)

}

我的模型文件如下:
@objc(Indexes)
class Indexes: NSManagedObject {
    @NSManaged var monday: NSData
    @NSManaged var tuesday: NSData
    @NSManaged var wednesday: NSData
    @NSManaged var thursday: NSData
    @NSManaged var friday: NSData
}

我还将数据模型中的所有属性设置为transformable。如我所说,这是我第一次这样做,如果解决方案是显而易见的,那么很抱歉。
如有任何建议,将不胜感激。

最佳答案

executeFetchRequest返回[AnyObject]?,而不是[String],实际上数组中的对象应该是包含已存档字符串数组的Indexes实例。
因此,您需要更正将提取结果放入的数组类型。

10-08 05:50
查看更多