在 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 3 Core Data - 如何同步保存上下文?