0

簡単に言うと、入力文字列を「トークン」に解析しようとしています.....

トークンが配置される場所を完全に制御できます。NSLog を実行して、入力文字列が完全に正しく形成されていることを確認できます (トークン化を試みる前の瞬間まで)。

この議論の目的のために、私は入力を理解し、それらを RPN できる簡単な計算機を構築しています。そして、私が抱えている問題は、トークン化と評価にあります。

とにかく、私の入力文字列が

55:6:+:3:+:9:3:/:-

各「トークン」の間に意図的にセパレータを作成するために「:」が挿入されている場所。次に、次のようなことを試みます

 NSArray *chunks = [input componentsSeparatedByString:@":"];

そして、これは必ず失敗します。「sizeof」を試してみると、明らかに9であるはずなのに、配列で一貫して4になります....

考え?

4

1 に答える 1

1

ここでテストしたので、このメソッドは入力に対して適切に機能します。sizeof()を使用してNSArrayの要素数を確認することはできません。NSArrayポインタのsizeofは、32ビットまたは64ビットのマシンを使用しているかどうかに応じて4バイトまたは8バイトのポインタのサイズを提供します。NSArray内のオブジェクトの数ではありません。NSArray内のオブジェクトの数を確認する場合は、countメソッドを使用します。

于 2013-01-24T05:30:57.757 に答える