在 Swift 的 Core Data 中保存自定义类

Posted

技术标签:

【中文标题】在 Swift 的 Core Data 中保存自定义类【英文标题】:Save custom class in Core Data in Swift 【发布时间】:2014-09-10 17:43:08 【问题描述】:

找了半天没找到能看懂的方法:(

我有一个自定义类:

public class Player 
private var name : String = "Test"
private var level : Int = 1
private var skill : Skill = Skill("Basic") //Skill is another class

我正在视图控制器中从此类创建一个对象:

var player = Player()

现在我不想保存这个玩家,所以我创建了一个名为 Saves 的实体和一个名为 playerSaved 的属性,并且具有可转换的类型。

当我将播放器保存到 playerSaved 时,出现“无法识别的选择器发送到实例”的崩溃。

感谢您的帮助 :) 希望完成这一切并完成我的应用程序!

【问题讨论】:

【参考方案1】:

您需要将自定义类转换为NSManagedObject

import CoreData

@objc(Player)
class Player: NSManagedObject 
    @NSManaged var name: String
    @NSManaged var level: NSNumber
    @NSManaged var skill: Skill

这是在 Core Data 中保存“自定义”类的标准方法。

【讨论】:

技能将无法保存。因为它不是基本的 Obj-C 类型。如何解决这个问题? NSManagedObject 继承自 NSObject,因此它“基本的 Objective-C 类型”。

以上是关于在 Swift 的 Core Data 中保存自定义类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中的 Core Data 中保存多个项目

使用 Core Data 在 Swift 3 中保存和检索 MKAnnotations

在 Swift Core Data 中保存没有关系的实体

Swift 3 Core Data - 如何同步保存上下文?

如何将日期类型保存到 Swift Core Data 中实体的属性?

Core Data 使用 Swift 保存数据