ios - 在代码中使用 NSManagedObject 模型

标签 ios swift core-data nsmanagedobjectmodel

我有一个用户模型类(由 XCode 和 Swift 生成):

@objc(User)
class User: NSManagedObject { }

它的扩展名:

extension User {    
    @NSManaged var id: NSNumber?
    @NSManaged var firstName: String?
    @NSManaged var lastName: String?
    @NSManaged var birthYear: NSNumber?    
}

我可以从 CoreData 保存/获取数据。 但是我可以在没有 CoreData 的情况下使用这个类进行对象管理吗?或者我需要为此创建其他类/结构?

例如,创建 User 对象(没有 ObjectContext),设置他的属性并将其作为属性发送到某个函数中?也许我可以在 User 类中创建一些结构(例如 struct {var firstNameData, secondNameData,...})并在代码中使用它?

最佳答案

我更新了类:

struct User {

    var id:        Int!
    var firstName: String!
    var lastName:  String!
    var birthYear: UInt?
}

@objc(UserManagedObject)
class UserManagedObject: NSManagedObject {

    func toStruct() -> User {

        var userData = User()
        userData.id = Int(self.id)
        userData.firstName = self.firstName
        userData.lastName  = self.lastName
        if let by = self.birthYear {
            userData.birthYear = UInt(by)
        }

        return userData
    }
}

现在对于对象管理,我将 struct User 和 UserManagedObject 用于 CoreData 输入/输出

关于ios - 在代码中使用 NSManagedObject 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821159/

相关文章:

ios - UIRefreshControl 需要下拉太多

ios - 将 SteamID 转换为 32/64 位 SteamID Swift

swift - 启动屏幕可能不会触发 segue。 (启动屏幕. Storyboard)

ios - swift 和 sprite 工具包在屏幕上拖动手指时画一条直线

ios - 使用 Restkit 通过外键连接一对多

ios - core graphics绘图时如何跳过一个区域(cutout)

ios - Swift 2.1 核心数据 - 使用 setValue() 更新图像记录

ios - 显示带有操作的搜索栏(栏项)

ios - NSFetchedResultsController并不总是调用didChangeObject :atIndexPath:forChangeType:newIndexPath: for NSFetchedResultsChangeMove

ios - 迁移核心数据和映射模型