1

既存の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)

Rakefileで、そのAppDelegateクラスの前にUserクラスをコンパイルする必要があることを明示的に示すことで問題を解決できますが、30以上のクラスがあり、その多くが相互に参照しているアプリを扱う場合、これはほとんど最適な解決策ではありません。

RubyMotionでこの問題に取り組むためのより良い方法はありますか?

4

1 に答える 1

5

多くのクラスがあると、このアプローチを使用するのは面倒になる可能性があることに同意しapp.files_dependenciesます。

私のアプリでは、app.files代わりにパラメーターを変更し、最も重要なもの(私の場合はlib/追加したフォルダー)を最初に配置するようにパラメーターを並べ替えました。

app.files = (app.files.select { |f| f =~ /app\/lib/ } + app.files).uniq
于 2012-06-20T14:29:01.873 に答える