2017-01-31 2 views
1

私はそうのような.xcdatamodelに属性の最大値/最小値の検証ルールを追加しました:リフレッシュ(リロード)NSManagedObject後に失敗した検証

validation rules

その後、私は無効な値を設定し、そのように保存しようとするならば、それはそれはまだ検証の前にいない1(データストアに残っている1)、.rating無効を含んでいるでしょう

object.rating = 100 
try? AppDelegate.context.save() 

をしかし、私はときにコンテキストからオブジェクトを再フェッチ:私が期待するとして失敗しました。

アプリを再起動した場合、オブジェクトのratingは古い有効な値になります。保存に失敗した後にmanagedObjectContextデータストアから値をリフレッシュするにはどうすればよいですか?

答えて

0

、これを試してください:

managedObjectContext.refresh(managedObject, false) 

これは、管理対象オブジェクトコンテキスト内のオブジェクトを更新する必要があります。 また、あなたが使用することができます。

managedObjectContext.reset() 

それは保存せずにコンテキスト内のすべてのmanagedObjectsをリセットします。

+0

両方の提案がうまくいきます、ありがとう –

関連する問題