سؤال

لدي عرض تنقل مع عرض جدول، عند النقر فوق صف، يتم تمرير فهرسي الصف إلى الرأي التالي.

في عرض التفاصيل عرض ViewDIDID، أحصل على بيانات من البيانات الأساسية. أنا استخدم الجلب من مندوب التطبيق

[appDelegate loadItem:i];

كما ترون أنني اجتيز عدد صحيح واحد فقط يحمل رقم الصف.

السؤال هو: كيف يمكنني إجراء عملية الاتصال هذه في مؤشر ترابط آخر. (في الخلفية) أحتاج إلى ذلك لأنه في بعض الأحيان يكون نتيجة جلب كبير جدا، وبالتالي فإن المعالجة تستغرق 3 ثوان تأخير دفع عرض التفاصيل.

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

أريد أبسط طريقة كما أنا مبتدئ. نشر بعض الرموز سيكون رائعا. أو روابط :)

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

المحلول

خلط البيانات المتعددة والبيانات الأساسية ليست مهمة بسيطة. ال "متعدد الخيوط مع البيانات الأساسية" يصف قسم دليل برمجة البيانات الأساسية كيفية التفاعل مع البيانات الأساسية على مؤشرات ترابط متعددة، بما في ذلك كل الأشياء التي تحتاج إلى توخي الحذر منها.

في الأساس، سوف تحتاج إلى إنشاء سياق كائن مدار منفصل لكل مؤشر ترابط. يمكن لهذه السياقات مشاركة الوصول إلى نموذج كائن مدار واحد ومتجر ثابت. لحالتك، اقترحوا ما يلي:

يمكنك استخدام سياقات كائن مدارة مرتبطة بمنسق مخزن مستمر واحد. يمكنك جلب في سياق كائن مدار واحد على مؤشر ترابط الخلفية، وقم بتمرير معرفات كائن الكائنات المنفجرة إلى مؤشر ترابط آخر. في الخيط الثاني (عادة ما يكون الموضوع الرئيسي للتطبيق، بحيث يمكنك بعد ذلك عرض النتائج)، يمكنك استخدام السياق الثاني للخطأ في الكائنات باستخدام هذه المعرفات الكائنات (يمكنك استخدام ObjectWithID: لإرساء الكائن).

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

ومع ذلك، قبل أن تصبح بعيدة جدا في مرتدة طلب الجلب الخاص بك، سأتطلع إلى سبب استغرق الأمر وقتا طويلا للتحميل. سأوصي أولا باستخدام -SetFetchBatchSize: على NSFetchRequest للحد من عدد الكائنات التي تم تحميلها في الذاكرة عبر جلبك (والتي ستوفر لك الكثير من الذاكرة، أيضا). بعد ذلك، كنت أستخدم -SetPropertiEtoFetch: للحد من الخصائص التي جلبت فقط تلك التي ستستخدمها على الفور.

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