iPhone-Wax で NSDecimal を作成しようとしているときに直面している問題を調査したので、今はもっと低い目標にしています。Wax で完全に機能する NSDecimalNumber を作成するにはどうすればよいですか?
新しいワックス プロジェクトの AppDelegate.lua の先頭に次の 2 行を追加しました。
local x = NSDecimalNumber:initWithString("2.3")
print(x)
print(x:class())
出力は
(0x631e054 => 0x631d1a0) 2.3
(0x631e924 => 0x25f618) NSCFNumber
のようなものの代わりに
(0x621e834 => 0x620c550) <NSDecimalNumber: 0x620c550>
ワックスで完全なログをオンにすると、デバッグ ウィンドウに次のトレースが表示されます。
Creating class for WaxServer(0x621bf40)
Storing reference of class to userdata table WaxServer(0x621bf40 -> 0x621c454)
Storing reference to strong userdata table WaxServer(0x621bf40 -> 0x621c454)
Creating class for NSDecimalNumber(0x261120)
Storing reference of class to userdata table NSDecimalNumber(0x261120 -> 0x6205e44)
Storing reference to strong userdata table NSDecimalNumber(0x261120 -> 0x6205e44)
Creating instance for NSDecimalNumberPlaceholder(0x6213450)
Retaining instance for NSDecimalNumberPlaceholder(0x6213450 -> 0x621d7c4)
Storing reference of instance to userdata table NSDecimalNumberPlaceholder(0x6213450 -> 0x621d7c4)
Storing reference to strong userdata table NSDecimalNumberPlaceholder(0x6213450 -> 0x621d7c4)
Creating instance for NSCFNumber(0x620c550)
Retaining instance for NSCFNumber(0x620c550 -> 0x621e834)
Storing reference of instance to userdata table NSCFNumber(0x620c550 -> 0x621e834)
Storing reference to strong userdata table NSCFNumber(0x620c550 -> 0x621e834)
(0x621e834 => 0x620c550) 2.3
Creating class for AppDelegate(0x621ec50)
:
:
このログには、要求していない NSDecimalNumberPlaceholder と NSCFNumber の 2 つが表示されています。これらが私の悲しみの原因であると信じており、それらがどこから来ているのかわかりません. 問題を解決する方法についてのアイデアはありますか?
最終的には、decimalValue メソッドを呼び出したいのですが、ワックスは、数値に対してメソッドを呼び出すことができないと不平を言っています。