ios - 在 Core Data 中保存和检索自定义对象

标签 ios swift core-data nsdata

这是我第一次尝试在我的核心数据中保存和检索自定义数据,但我遇到了一条错误消息:

fatal error: array cannot be bridged from 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 实例,其中包含您的存档字符串数组。

因此,您需要更正放置提取结果的数组类型。

关于ios - 在 Core Data 中保存和检索自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775386/

相关文章:

objective-c - 检测到尝试调用系统库中不存在于 iPhone 和 SIGBRT 上的符号

objective-c - 实现一堆可以改变大小的 View

ios - 如何更改 WidgetKit 中心 ‘Add Widget’ 按钮的颜色

ios - Coredata PerformBlock 然后返回新值

ios - NSPredicate用于从多对多关系中获取项目,但不包括特定的相关实体

ios - Appium iOS Safari 打开新标签,接受提醒并在两个标签之间切换

ios - 如何在 MBCalendarkit 中显示选定月份的事件

xcode - 更新到 Xcode 6.3 后,与 Neo4J 的 Theo 连接断开

ios - 持有无主引用的对象何时被释放?

ios - swift 2 : Populating a TableView with two CoreData entities