سؤال

هل هناك أي طريقة للكشف عن متى سيتم تلخيص NSView؟

السبب هو أن لدي بعض المندوبين البسيطين (مثل مندوب nstextfield الذي يتعامل مع -Control: textview: docommandbyselector: للسماح إدخال مفاتيح العودة / علامة التبويب ليتم إدخالها). أود أن أصلح هذا الكائن المندوب في المنظمة غير الحكومية، وسلك اتصال مندوب NSTEXTFILD وجعله يعمل.

وهذا يعمل، لكن المندوب لا يتم إصداره أبدا حتى بعد أن يرتبط NSTEXTFILD بأنه يتم إصداره، وبالتالي تسرب كائن المندوب.

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

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

المحلول

لقد ألقيت نظرة جيدة على هذا سابقا، ولا يبدو أن هناك بأي حال من الأحوال لمراقبة متى يتم إلغاء تخصيص كائن. لقد رأيت طريقة واحدة للقيام بذلك في فئة مؤشر ضعيفة، لكنها تنطوي على Suizzling ISA، والتي يمكن أن تصبح سيئة. هنا هو الموقع الإلكتروني: http://www.cocoadev.com/index.plweakpoard.

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

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