كيف يمكنني إنشاء العديد من الكائنات المؤقتة ثم قم بحفظ واحد فقط باستخدام البيانات الأساسية؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا أعمل على تطبيق من شأنها أن تؤدي بحث مقابل خدمة الانترنت وتوليد العديد من الكائنات النتيجة. كائن النتيجة هو NSManagedObject، تهيئة كما هو مطلوب من قبل ربطه مع NSManagedObjectContext.

يجب

ويكون المستخدمون قادرين على اختيار "النتيجة"، وحفظه ك "المفضلة". في تطبيق هذه بسيطة مثل ربط الكيان النتيجة مع الكيان المفضلة جديدة وتوفير السياق.

والمشكلة هي أن كل نتيجة واحدة في سياق بالطبع يحصل على حفظ إلى قاعدة البيانات جنبا إلى جنب مع واحد أريد المفضلة.

ولقد رأيت العديد من الأمثلة على استخدام الحالات NSManagedObjectContext متعددة لإدارة مختلف الحالات الخلق والمثابرة. يبدو كل منهم لتدور حول فكرة إنشاء حالات جديدة مع سياق واحد ومن ثم دمجها في حفظ في سياق آخر من أجل تجنب تنفيذ FetchRequest آخر. هذه الأمثلة لا تحل المشكلة كما أنها أدت إلى كل كيان النتيجة يتم حفظها.

وأي شخص لديه أي اقتراحات؟ أنا استغلالها تماما على هذا.

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

المحلول

ويجب عليك استخدام سياق مختلف لكل كائن. باستخدام سياق كائن مدار منفصل يسمح لك للعمل على النحو التالي. عندما يقوم المستخدم بتحديد الكائن المفضل لها، كنت مجرد تجاهل السياقات المتعلقة الكائنات نتيجة المتبقية. لا حاجة لدمج التغييرات وما إلى ذلك هناك أساسا المقايضة. كنت في نهاية المطاف لإدارة المشاريع (خلق / رميه) عدة سياقات، ولكن بعد ذلك تحقيق هدفك بسهولة. خلاف ذلك، لا يزال بإمكانك القيام بذلك فقط باستخدام سياق واحد. ومع ذلك، لديك لادخال صراحة أو حذف كل كائن كما هو موضح في التعليمات البرمجية المتكررة.

وجرب هذا. فقط لكائن المفضلة التي تريد حفظها، قم بما يلي:

[managedObjectContext insertObject:theFavorite];

لكل الكائنات الأخرى نتيجة قيام بذلك بدلا من ذلك:

[managedObjectContext deleteObject:aResult];

ثم حفظ كالعادة

NSError *error = nil
if (![managedObjectContext save:&error]) {
   // Handle error

}

وهذا سيوفر فقط اخترتها، وجوه المفضل.

نصائح أخرى

وأنا أفضل أن استخدام سياق NIL ولدى فئة نموذج المجال الأساسي للتعامل بشكل متكرر إضافة كائنات إلى سياق صحيح عندما أريد أن تستمر لهم. حقا انها تعمل بشكل جيد (ونظيفة!) ... كود متاح هنا ... <لأ href = "http://www.locassa.com/index.php/2011/05/temporary-storage-in-apples-coredata / "يختلط =" نوفولو "> المؤقتة الأساسية البيانات

وإنشاء كائنات النتيجة التي ليست فرعية NSManagedObject. عندما يختار المستخدم واحد، إنشاء مثيل تمكن واحد وحفظ ذلك.

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