NSUnknownKeyException للمفتاح الموجود وغير المكتوب بشكل خاطئ

StackOverflow https://stackoverflow.com//questions/12651860

سؤال

أحصل على الإخراج التالي:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<NSManagedObject 0x21016610> setValue:forUndefinedKey:]: the entity MyEntity is
not key value coding-compliant for the key "aBooleanKey".'

الكود الذي يتم تشغيله قبل أن أحصل على الإخراج هو التالي:

self.name = [managedObject valueForKey:@"name"];
self.language = [managedObject valueForKey:@"language"];
self.ownerID = [managedObject valueForKey:@"ownerID"];
// the following line is the scope of the problem:
self.aBooleanKey = [[managedObject valueForKey:@"aBooleanKey"] boolValue];

بالنسبة لي، يبدو هذا بمثابة خطأ مطبعي أو شيء من هذا القبيل، نظرًا لأن جميع سمات الكيان الأخرى لا تسبب أي مشكلة.لكنني راجعت حوالي اثنتي عشرة مرة ولم أجد أي خطأ مطبعي أو نحو ذلك.كل شيء يبدو صحيحا.وقبل أسبوع مضى كان كل شيء على ما يرام، ولم أغير أي شيء هنا.

هناك أيضًا عدد قليل من الأماكن الأخرى التي أقوم فيها بأشياء باستخدام managedObject وبالمثل فإن جميع السمات الأخرى تعمل بشكل جيد باستثناء هذه السمة.حاولت حذفها من مخزن البيانات الأساسية وإعادة كتابتها، لكنها لم تحل المشكلة.

هل هناك أسباب أخرى لهذا الخطأ؟

هل كانت مفيدة؟

المحلول

المشكلة غريبة جدًا (أحيانًا تعمل، وأحيانًا لا)، لذا أقترح تغيير اسم السمة (على سبيل المثال: booleanStatus) وتحقق مما إذا كانت المشكلة لا تزال قائمة أم لا.

نظرًا لأنك قمت بتغيير النموذج، فأنت بحاجة إلى إزالة التطبيق وإعادة إنشائه.وبدلاً من ذلك، يمكنك إجراء ترحيل تلقائي على البيانات الأساسية.كما تفضل.

نأمل أن يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top