1. ホーム
  2. objective-c

[解決済み] つのNSNumberオブジェクトを追加するには?

2023-07-13 10:59:07

質問

さて、これは簡単なことなのですが、どのようにすれば2つの NSNumber ? のようなものです。

[one floatValue] + [two floatValue]

それとも、もっと良い方法があるのでしょうか?

どのように解決するのですか?

よりよい方法はありませんが、避けられるのであれば、このようなことはしないほうがよいでしょう。 NSNumber はスカラー数値のラッパーとして存在しており、これをコレクションに格納し、他の NSObjects . これらは,実際の数学で数値を格納するために使われることはありません.もしスカラー数に対して計算を行った場合、スカラー数に対して演算を行うよりもはるかに遅くなります。

例えば

NSNumber *sum = [NSNumber numberWithFloat:([one floatValue] + [two floatValue])];

メッセージのディスパッチに最低でも21命令、メソッドが値のアンボックスとリボックスに要するコード(おそらく数百)は、1命令分の計算を行うために吹き飛んでいます。

ですから、ディクテに数値を格納する必要がある場合は NSNumber を、関数に数値や文字列を渡す必要がある場合は NSNumber を使いますが、単に計算したいだけならスカラーC型にこだわります。