كيف يمكنني تحديث مؤامرة الأساسية دون عودته من طريقة؟

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

سؤال

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

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

المحلول

طيب أنا أحسب كيف. I استدعاء الأسلوب reloadData من أسلوب في موضوع مستقل (والتي ترجع دائما). المغلي هذا وصولا الى الدعوة reloadData من IBAction وأيضا مع NSTimer. وأخيرا بدلا من استخدام النوم وسوف تستخدم NSConditionLock تنسيق تجهيز ومنعش

نصائح أخرى

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

وكلما كنت تستخدم sleep في تطبيق ماك OS X، يمكنك قتل جرو. استخدام NSTimer بدلا من ذلك. يكون لديك طريقة توقيت رد قيام بالعمل المطلوب لرسم بياني واحد، ووضع كل ما المثال المتغيرات الضرورية لديك طريقة لمعرفة أي الرسم البياني ينبغي رسم، بحيث يرسم طريقة كل رسم بياني بدوره حتى نفدت منها.

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

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

وبدلا من الاعتماد على الفور، ويتم وضع علامة على طبقات كما تحتاج إلى الرسم.

وكما أشير من قبل الآخرين، وهو النهج الأفضل أن النوم هو استخدام NSTimer لتجنب عرقلة حلقة المدى، أو استخدام أساليب NSObject مثل performSelector: withObject: afterDelay:

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

ونلاحظ أيضا أن كور المؤامرة هي مشروع الشباب إلى حد ما. CPAnimation وفئات ذات الصلة هي بذرة. انهم لا حقا أي شيء حتى الآن. : -)

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