سؤال

وعلى سبيل المثال:

@interface Fraction: NSObject {
...

عند لن NSObject استخدامها وNSObject الفئة الأصل النهائية لجميع الفئات الأخرى؟

لا تتردد في تصحيح لي على أي مصطلحات خاطئة المستخدمة.

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

المحلول

إذا كنت أكتب فئة فرعية من NSView، أود أن أكتب:

@interface Fraction: NSView {...

ولأن صفي وراثة من NSView. دروس في الهدف C ترث من فئة أصل واحد فقط. أثناء العمل طريقك حتى السلسلة من NSView (إلى الدرجة الأم، NSResponder)، سوف تجد أن يرث في نهاية المطاف من NSObject.

وأنا لست متأكدا من الجزء الثاني من سؤالك. أعتقد أن كل الطبقات في أطر الكاكاو أبل ترث في نهاية المطاف من NSObject، ولكن لا اقتبس لي على ذلك. ليس هناك سبب في الهدف-C، لماذا لا يمكن أن يكون هناك كائنات الجذرية الأخرى (لولاها أن تستخدم إلا الهدف-C على أنظمة أبل). ومع ذلك، في الكاكاو، NSObject هو الجذر.

نصائح أخرى

في أي التطبيق الكاكاو، إذا كنت دراسة شجرة الدرجة وقت التشغيل، وسوف تجد خمسة فصول الجذر: NSObject، كائن، NSProxy، NSMessageBuilder، و<م> NSZombie

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

ويستخدم NSMessageBuilder من وقت لتوجيه الرسالة. يستخدم NSProxy عن طريق تنفيذ الأشياء الموزعة للتعامل مع التعبئة الرسائل لإرسالها إلى الكائنات في عمليات أخرى أو حتى على المضيفين الآخرين. NSZombie هو الفئة التي تستخدم للتصحيح تسرب الذاكرة.

والكاكاو واثنين من الطبقات الجذر: NSObject وNSProxy

وNSObject هي الطبقة أصل كل الأشياء تقريبا الكاكاو.

وNSProxy هو الفائقة مجردة تحديد وAPI للكائنات التي تكون بمثابة موقف الإضافية لكائنات أخرى أو للكائنات التي لا وجود لها حتى الآن، وهي الطبقة الجذرية لفئات مثل NSDistantObject.

وكل الطبقات تنفيذ بروتوكول NSObject.

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

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