3

RubyMotionを入手してインストールしたばかりのRubynoobが最初のプログラムを作成しましたが、Time(サンプル)アプリを動作させるのに問題があります。

sprintまたは他の形式のいずれかを使用して文字列をフォーマットしようとすると(名前がわかりません)、フォーマット文字列が返されます。

つまり(私のアプリがシミュレーターで実行されている間のコンソールから)

Build ./build/iPhoneSimulator-5.1-Development
Simulate ./build/iPhoneSimulator-5.1-Development/Timer.app
(main)>> @time = 0.1
=> 0.0999999940395355
(main)>> string = sprintf("%.1f", @time)
=> "%.1f"
(main)>> string
=> "%.1f"
(main)>> "%.1f" % @time 
=> "%.1f"
(main)>> 

シミュレーターの実際のアプリでも同じ結果になります。

Macにデフォルトのrubyをインストールしていますが、テストrubyファイル(print "%05d"%123)を実行しようとすると、期待どおりの結果が得られます。

/usr/bin/ruby -v 
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
/Library/RubyMotion/bin/ruby -v
MacRuby 0.12 (ruby 1.9.2) [universal-darwin11.0, i386]

Lion 10.7.3で実行しているので、アドバイスやアイデアをいただければ幸いです。

ありがとう。

4

1 に答える 1

1

2012年5月9日の時点で、これは修正されています。RubyMotion 1.3(実行sudo motion update)を使用していることを確認してください。文字列の書式設定が再び機能します。

アップデート5/8/12:バグが確認されました。今夜または明日修正する必要があります。

上記の私のコメントによると、これには間違いなくバグがあります。これを機能させるための醜いハックは、次のようなものになる可能性があります(%dまだ正常に機能するためsprintf):

@time = 0.1
sprintf("%d", (@time * 10).round).insert(-2, '.')
于 2012-05-08T14:48:31.377 に答える