在CoreData中,可以将枚举作为属性存储。下面是一种常见的方法:
enum MyEnum: Int, NSCoding {
case case1
case case2
case case3
func encode(with coder: NSCoder) {
coder.encode(self.rawValue, forKey: "rawValue")
}
init?(coder: NSCoder) {
guard let rawValue = coder.decodeObject(forKey: "rawValue") as? Int else {
return nil
}
self.init(rawValue: rawValue)
}
}
class MyEntity: NSManagedObject {
@NSManaged var myEnum: MyEnum
}
// 存储枚举属性
let context = persistentContainer.viewContext
let entity = NSEntityDescription.insertNewObject(forEntityName: "MyEntity", into: context) as! MyEntity
entity.myEnum = .case1
// 获取枚举属性
let fetchRequest: NSFetchRequest<MyEntity> = MyEntity.fetchRequest()
let results = try context.fetch(fetchRequest)
let myEnum = results.first?.myEnum
这样,你就可以将自己的枚举作为属性存储在CoreData中了。
对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议你参考腾讯云的官方文档或者搜索相关资料来了解腾讯云在云计算领域的产品和服务。
腾讯云存储专题直播
TVP技术夜未眠
小程序·云开发官方直播课(数据库方向)
TVP技术夜未眠
云+社区沙龙online第5期[架构演进]
云+社区技术沙龙[第17期]
云+社区沙龙online第6期[开源之道]
云+社区技术沙龙[第21期]
云+社区技术沙龙第33期
领取专属 10元无门槛券
手把手带您无忧上云