Хранение информации в объектах стека / потока - PullRequest
2 голосов
/ 07 апреля 2011

Скажем, у меня есть приложение следующего типа:

Shoes.app do
    @i = 0

    def add_button
        button ("#{@i += 1}")
    end

    button("0") {add_button}
end

Так что каждый раз, когда вы нажимаете кнопку, она добавляет новую кнопку с большим номером.Есть ли способ закодировать его, чтобы при нажатии на одну из новых кнопок отображался ее номер?Поскольку self всегда указывает на приложение, очевидный подход

button ("#{@i += 1}") {alert @i}

не работает, поскольку при нажатии любой кнопки просто отображается текущее значение @i.

1 Ответ

1 голос
/ 07 апреля 2011
Shoes.app do
    @i = 0

    def add_button
        n = @i+1
        button ("#{@i += 1}") {alert n}
    end

    button("0") {add_button}
end
...