سؤال

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

ويجري إنشاء فئة جديدة (وتسمى الإطار) الذي يأخذ مجموعة كحجة في منشئ.

Frame class>>new: anArray
  ^self new setRolls: anArray

Frame>>setRolls: anArray
  rolls := anArray

وعندما أحاول تشغيل هذا في اختبار بسيط:

testFrame
  | frame rolls |
  rolls := Array with: 5 with: 4.
  frame := Frame new: rolls.

وأحصل على الخطأ التالي:

نص بديل http://files.getdropbox.com/u/120566 /junk/error.png

وكيف يجب أن تعديل الرسالة جديد # لتكون قادرة على تهيئة الكائن الإطار مع مجموعة؟

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

المحلول

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

نصائح أخرى

هل حقا لا تريد تجاوز new: هنا. محجوز new: تقليديا ل "إنشاء عنصر من هذا الحجم عدد صحيح"، وأنها لا يفاجئني أن تهب على لك.

واسم أكثر تقليدية لهذا النوع من منشئ تريده هو fromArray:، أو ربما حتى fromCollection: التي كان من المحتمل أن يعمل كنت ترغب.

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