2014-05-22 42 views
0

我有問題很多時間瞭解我得到的吱吱聲程序中的錯誤,無法修復和調試它。像在這種情況下:smalltalk吱吱聲錯誤:「實例的undefinedObject不可索引」

我寫吱下面的代碼是Smalltalk的語言:

initilize 

super initialize. 
path := OrderedCollection new. 

-

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

-

handlesMouseDown: evt 
^true. 

-

mouseDown: evt 

self position: self position + ([email protected]). 

-

startAnimation 

    path reset. 
    0 to: 9 do: [:i | path add: self position +([email protected](10*i))]. 
    path := path, path reverse. 
    self startStepping. 

-

step 

path size > 0 ifTrue: [self position: path removeFirst]. 

,這是我在工作區中寫的代碼:

myMorph := TestMorph new openInWorld. 

,但我正在和錯誤,我寫了,東西長約問題與「步驟」方法中的「大小」 有人可以看到問題嗎?

+1

錯誤意味着'#step'方法中的'path'變量爲'nil'。儘管如此,我在代碼中看不到問題。要麼你做更多的事情,你需要有人更加關注你發現問題:) – Uko

+0

@Uko是對的,我也沒有在這裏發現一個錯誤。 – Tobias

回答

5

當您收到有關UndefinedObject的錯誤消息時,通常意味着某些變量未正確初始化,其值爲nil

的錯誤是你拼錯initialize

你寫initilize代替。創建對象時不調用此方法,因此path實例變量未定義(nil)。