2011-06-26 5 views
0

私が今直面している問題を勉強したので、Trying to create NSDecimal in iPhone-Wax私は現在かなり低いレベルを目指しています。どのようにしてワックスに完全に機能するNSDecimalNumberを作成できますか?ワックスで正直なNSDecimalNumberを作成しようとしています

私は、AppDelegate.luaの上に新しいワックスプロジェクトの次の2行を追加しました。

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) 
: 
: 

local x = NSDecimalNumber:initWithString("2.3") 
print(x) 
print(x:class()) 

出力は

(0x631e054 => 0x631d1a0) 2.3 
(0x631e924 => 0x25f618) NSCFNumber 

代わりの

(0x621e834 => 0x620c550) <NSDecimalNumber: 0x620c550> 

は、デバッグウィンドウで、次のトレースを与えるワックスでフル・ロギングをオンにするようなものです2つのものがあります私が求めなかったこのログにNSDecimalNumberPlaceholderとNSCFNumberを表示します。私はこれらが私の悲しみの源だと信じて、どこから来ているのか分かりません。どのように問題を解決するための任意のアイデア?

最終的に私はdecimalValueメソッドを呼び出したいが、ワックスは数値のメソッドを呼び出すことができないと言っている。

+0

正直な「NSDecimalNumber」であれば違いがありますか? ;) –

+0

@Dave DeLong:NSDecimalに変換できる限り。 –

答えて

2

NSDecimalNumberは、それが表す数値を返すために-descriptionをオーバーライドします。ロギングステートメントが "2.3"を印刷しているとき、実際にはNSDecimalNumberオブジェクトを出力しています。 x-classを呼び出して印刷することで、これを確認できます。

+0

オブジェクトで何をしたいのですか?decimalValueメソッドを呼び出すことです。数字2.3にはそのメソッドがないと不満を表明しているので、それが表示しているものを偽っているとは思わない。 –

+0

NSDecimalNumberの代わりにNSNumberを取得しているようです。ワックスがここで変なことをしているのだろうか? –

+0

NSNumberはdecimalValueも受け入れる必要があります。したがって、これはNSNumberではありません。私はクラスメソッドを試して、それとNSCFNumberだと言います。 –

関連する問題