2012-03-20 16 views
1

CoreDataを使用してアプリケーションのデータを保存します。エンティティ名はFriendInfoです。今度は、CoreDataモデルのバージョンを更新し、FriendInfoに「isBlock」という属性を追加し、デフォルト値をYESに設定します。 Appを再度実行してFriendInfoを挿入すると、新しいレコードの属性 "isBlock"の値がYES(SQLiteの場合、値は1)であることがわかりました。しかし、古いレコードの値はNULLではなく、YESです。古いレコードのデフォルト値を設定する方法を教えてくれるのは誰ですか?更新時にエンティティの新しい属性のデフォルト値を設定する方法CoreDataモデルバージョン

答えて

0

デフォルト値を更新するにはコードを実行する必要があります。 MSSQL ServerとMySQLでは、デフォルト値は新しいレコードにのみ適用されます。古いレコードを更新するためにSQLを実行する必要があります。私はそれがSQLiteの場合と同じであるべきだと思う。

+0

Very Thx @ Jun1st。私はあなたが正しいと思います。私は別の方法を見つけました:新しい属性 "isBlock"をオプションではなく設定してください。その後、アプリケーションを実行した後、すべての既存のレコードの属性「isBlock」はNOに設定されます。 –

+0

カラムを削除してもう一度追加して、デフォルトを "YES"に設定し、NULLに設定することもできます。すべての存在レコード 'isBlock'はYESでなければなりません。 – fengd

関連する問題