Menyetel properti di objek CoreData menghasilkan kesalahan penyimpanan

Saat saya memperbarui NSManagedObject dan menyimpannya, saya mendapatkan pesan kesalahan: Operasi tidak dapat diselesaikan. (Kesalahan kakao 1560.)

  • objeknya sudah ada di database, jadi sebenarnya saya sedang melakukan update saat menyimpannya
  • ketika saya menyimpan objek sebelum memodifikasinya, tidak ada kesalahan
  • Saya memodifikasinya dengan mengatur properti objek. Menggunakan KVP memiliki hasil yang sama
  • penyimpanan asli (objek telah dibuat sesaat sebelumnya) dan penyimpanan setelah pembaruan selesai semuanya ada di thread utama. Objek tersebut tidak pernah disentuh dari thread lain.

Metode validasiForUpdate: selalu mengembalikan TIDAK. Saya tidak yakin apakah metode ini harus mengembalikan YA meskipun objeknya belum diubah: jika objek X disimpan tanpa kesalahan dan kemudian saya memanggil validasiForUpdate: ia mengembalikan TIDAK.

Ada ide?


person Clemens    schedule 05.01.2013    source sumber
comment
Lihat postingan ini: stackoverflow.com/questions/1283960/   -  person LombaX    schedule 05.01.2013
comment
Terima kasih! Iterasi pada detailErrors membantu saya! Atribut hubungan kosong namun wajib. Saya belum mengerti mengapa menyimpan X pada awalnya tidak ada kesalahan. Sepertinya pengisian atribut wajib ini tidak diperhatikan oleh CoreData hingga pembaruan pertama setelahnya. Saya kira ini ada hubungannya dengan caching. Bagaimanapun, saya bisa memperbaiki masalah saya sekarang.   -  person Clemens    schedule 05.01.2013


Jawaban (1)


Properti yang Anda ubah memiliki batasan mengenai nilainya. Pembaruan Anda melanggarnya, sehingga mencegah Anda mempertahankan perubahan yang tidak valid.

person Eimantas    schedule 05.01.2013
comment
Lihat stackoverflow.com/questions/ 1283960/ dan iterasi pada detailErros akan menunjukkan masalah sebenarnya. Itu bukanlah atribut yang diperbarui itu sendiri. - person Clemens; 05.01.2013