私は現在、最初の主要なRubyMotionアプリケーションに取り組んでいます。表示するHTMLテキストがたくさんあるので、UIWebViewの使用をやめたいと思っています。これはちょっとしたハックであり、多くのフープがないと正しくサイズを変更するのが難しいためです。したがって、私のオプションの1つはDTCoreTextです。これは、このロットで最も使用され、安定したコントロールのようです。
私はもともとCocoaPodバージョンを使おうとしましたが、何らかの理由で別のポッドのMKNetworkKitで問題が発生しています。少しいじりましたが、ビルドプロセスに関してMKNetworkKitに多くの問題が報告されているので、そのままにしておくのが最善です。
代わりに、私はベンダーオプションを選びました。DTCoreTextリポジトリをベンダーディレクトリにgitクローンし、プロジェクトに追加しました。ライブラリをコンパイルしてlibDTCoreText.aファイルを作成することで近づきますが、実際に実行した後もスタックします。
私のRakeファイルにはこれが含まれています(残りはかなり一般的です):
app.vendor_project('vendor/DTCoreText',
:xcode,
:target => 'Static Library',
:products => ['libDTCoreText.a'])
app.libs << '/usr/lib/libxml2.2.dylib' #For DTCoreText
私が言ったように、libDTCoreText.aファイルはコンパイルされ、プロジェクトの適切な場所にコピーされます。
私のアプリのコードにはこれが含まれています。それは可能な限り基本的です-私はそれが機能するのを見たかっただけです。
@source = DTAttributedTextView.alloc.initWithFrame(CGRectZero)
@source.attributedString = NSAttributedString.alloc.initWithHTMLData(post.source.dataUsingEncoding(NSString.defaultCStringEncoding), options:{}, documentAttributes:nil)
@source.frame = [[self.frame.size.width / 2 - size.width / 2, 600], [250, 250]]
アプリケーションは正常にコンパイルされますが、実行時に上記のコードを実行すると、次のようにクラッシュします。
Objective-C stub for message `initWithHTMLData:options:documentAttributes:'
type `@@:@@^@' not precompiled. Make sure you properly link with the framework
or library that defines this message.
*** simulator session ended with error: Error Domain=DTiPhoneSimulatorErrorDomain
Code=1 "The simulated application quit." UserInfo=0x10019d470
{NSLocalizedDescription=The simulated application quit., DTiPhoneSimulatorUnderlyingErrorCodeKey=-1}
誰かが私が探し始めることができるアイデアを持っていますか?XCodeのビルドプロセスについてはまだよくわからないので、何かが足りない可能性があります。しかし、それはうまくいくはずです。ヘッダーを正しく表示できる(そしてコンパイルできる)と言っていますが、実際のライブラリがどこにあるかはわかりません。