Использование модели NSManagedObject в коде
У меня есть класс модели User (сгенерированный 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,...}
) и использовать это в коде?
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 in/out