2012-03-20 2 views
1

Я использую CoreData для сохранения данных моего приложения. Есть имена объектов FriendInfo. Теперь я обновляю версию модели CoreData и добавляю атрибут «isBlock» для FriendInfo и устанавливаю значение по умолчанию «YES». Когда я снова запускаю приложение и вставляю какой-то FriendInfo, я обнаружил, что значение атрибута новой записи «isBlock» равно YES (в SQLite значение равно 1). Но значение старых записей NULL не равно YES. Кто может сказать мне, как установить значение по умолчанию для старых записей?Как установить значение по умолчанию для нового атрибута объекта при обновлении CoreData Model Version

ответ

0

Я думаю, вам нужно будет запустить некоторый код, чтобы обновить значение по умолчанию. В MSSQL Server и MySQL значение по умолчанию применяется только к новым записям. Нам придется запускать SQL для обновления старых записей. Я думаю, что это должен быть тот же случай для SQLite

+0

Very Thx @ Jun1st. Я думаю, что вы правы, и я нашел другой способ: установить новый атрибут «isBlock», не являющийся необязательным. Затем после запуска приложения все атрибуты записи «isBlock» будут установлены NO. –

+0

Возможно, вы можете попробовать удалить столбец и добавить его обратно, установив по умолчанию значение «YES» и NOT NULL. все существующие записи «isBlock» должны быть YES. – fengd

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