在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中了。
对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议你参考腾讯云的官方文档或者搜索相关资料来了解腾讯云在云计算领域的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云