1

使用 RubyMation 编写 TableView 我有以下代码。dataSource 是另一个类。以下代码运行良好。

但首先我没有为@dataSource 使用实例变量——只是一个局部变量。该应用程序启动正常。但是当我开始滚动应用程序崩溃了。

那么为什么我必须使用实例变量呢?

TIA, JW

class FolderController < UIViewController

  def viewDidLoad
    super

    self.title = "Folder"

    @table = UITableView.alloc.initWithFrame(self.view.bounds)
    self.view.addSubview @table

    # fine
    @dataSource = DatasourceFolder.new
    @table.dataSource = @dataSource

    # crashes when scrolling the tableview 
    # dataSource = DatasourceFolder.new
    # @table.dataSource = dataSource

 end

结尾

4

1 回答 1

1

我认为这种行为的原因是垃圾收集。所以我用谷歌搜索并在 RubyMotion 中找到了对象初始化,这支持了我的猜测。在我看来这很合理...

于 2013-04-28T21:41:31.677 回答