2017-02-13 5 views
0

Допустим, у меня есть класс, который выглядит следующим образом:Сохранить объект в Core Data

class A { 
    var property1:Int 
    var property2:String 

    init(property1: Int, property2: String) { 
     self.property1 = property1 
     self.property2 = property2 
    } 
} 

(...)

let a = A(property1: 10, property2: "Smth") 

ли способ сохранить этот объект в CoreData? Нужно ли мне создавать через NSManageObject новый класс с этим именем, а затем делать все с самого начала? Или есть способ конвертировать класс в соответствие с ним без изменений? Btw. через этот генератор в последнем обновлении есть ошибка, которая говорит о том, что этот класс неоднозначен: o

Спасибо заранее!

+1

Классы основных данных (объекты) должны быть «NSManagedObject». Генератор не является ошибкой, это, скорее всего, неправильная настройка пользователя. – vadian

ответ

0

Вам необходимо иметь NSManagedObject или подкласс, но у вас не может быть двух классов с тем же именем. С Core Data вы обычно определяете тип сущности в редакторе модели Core Data, а затем создаете подкласс для соответствия этому объекту (Xcode обычно автоматически создает подкласс автоматически в эти дни).

Очень необычно иметь второй неуправляемый класс, который отражает объект Core Data. Вы можете использовать подкласс NSManagedObject самостоятельно. У вас все еще есть property1 и property2, но ваш инициализатор должен будет измениться. Для управляемых объектов у вас должен быть интерфейс управляемого объекта с инициализацией, что обычно означает включение в качестве аргумента инициализатора.

Возможно, вам стоит взглянуть на Apple Core Data Programming Guide.

Смежные вопросы