smalltalk吱吱声错误:"undefinedObject的实例不可索引"

Yuv*_*evy 0 smalltalk squeak

我有很多时间了解我在squeak程序中遇到的错误,并且无法修复和调试它.就像在这种情况下:

我写的以下代码是squeak中的smalltalk语言:

initilize

super initialize.
path := OrderedCollection new.
Run Code Online (Sandbox Code Playgroud)

-

drawOn: aCanvas
| colors |
colors := Color wheel: 10.
colors withIndexDo:[:c :i | 
aCanvas fillOval: (self bounds insetBy: self width/25*i+1 )
color: c
].
Run Code Online (Sandbox Code Playgroud)

-

handlesMouseDown: evt
^true.
Run Code Online (Sandbox Code Playgroud)

-

mouseDown: evt

self position: self position + (10@0).
Run Code Online (Sandbox Code Playgroud)

-

startAnimation

    path reset.
    0 to: 9 do: [:i | path add: self position +(0@(10*i))].
    path := path, path reverse.
    self startStepping.
Run Code Online (Sandbox Code Playgroud)

-

step

path size > 0 ifTrue: [self position: path removeFirst].
Run Code Online (Sandbox Code Playgroud)

这是我在工作区中编写的代码:

myMorph := TestMorph new openInWorld.
Run Code Online (Sandbox Code Playgroud)

但是我收到了错误,我写了一些关于"步"方法中"大小"问题的东西可以有人看到问题吗?

aka*_*ice 5

当您收到有关UndefinedObject它的错误消息时,通常意味着某些变量未正确初始化,它具有该值nil.

错误是你拼错了 initialize

你改写了initilize.创建对象时不调用此方法,因此path实例变量是undefined(nil).