Использование модели NSManagedObject в коде

У меня есть класс модели пользователя (сгенерированный 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), установить его атрибуты и отправить как свойство в какой-нибудь func? Может быть, я могу создать некоторую структуру в классе User (например, struct {var firstNameData, secondNameData,...}) и использовать ее в коде?


person Viktor    schedule 20.11.2015    source источник
comment
Вы не можете создать ManagedObject без контекста.   -  person nanjunda    schedule 20.11.2015


Ответы (1)


Я обновил класс:

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.

person Viktor    schedule 20.11.2015