简体   繁体   中英

Usage NSManagedObject model in code

I have a User model class (generated by XCode with Swift):

@objc(User)
class User: NSManagedObject { }

And it's extension:

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

I can save/fetch data from CoreData. But can I use this class for object management without CoreData things ? Or i need to create other class/struct for this?

For example, create User object (without ObjectContext), set his attributes and send it as property in some func? Maybe i can create some struct in class User (like struct {var firstNameData, secondNameData,...} ) and use it in code?

I updated class:

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
    }
}

Now for object management i use struct User and UserManagedObject for CoreData in/out

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM