RubyMotion中文件加载/编译顺序的处理是什么?

bod*_*ous 1 rubymotion

我正在将现有的iOS应用程序从Objective-C转换为RubyMotion.

我遇到的第一个主要缺陷是AppDelegate类引用了应用程序中定义的其他类.

由于这些是在AppDelegate类之后编译的,因此会引发异常:

2012-06-20 13:38:03.088 myApp[3349:f803] *** Terminating app due to uncaught exception 'NameError', reason: 'uninitialized constant AppDelegate::User (NameError)
Run Code Online (Sandbox Code Playgroud)

我可以通过在我的Rakefile中明确声明应该在AppDelegate类之前编译User类来解决这个问题,但是当你处理一个有30多个类的应用程序时,这几乎不是最佳解决方案,其中许多类是相互引用的.

有没有更好的方法来解决RubyMotion中的这个问题?

Dyl*_*kow 5

我同意,app.files_dependencies一旦你有很多课程,使用这种方法会很麻烦.

在我的应用程序中,我更改了app.files参数,重新排序以将我最重要的事情放在第一位(在我的情况下,lib/我添加的文件夹):

app.files = (app.files.select { |f| f =~ /app\/lib/ } + app.files).uniq
Run Code Online (Sandbox Code Playgroud)