0

私はこの関数を使ってセクションリストを平らなリストに変換しようとしていますdidSelectRowAtIndexPath(各セクションに含まれるアイテムの数で初期化されたNSArrayを持っています) :didSelectRowAtIndexPathに続いObjective-C - ループは再生されましたが、ループ条件が偽です

どこかで... :-)

self.sectionsArray = [NSArray arrayWithObjects:macroIntNumber(1), macroIntNumber(3), macroIntNumber(12), nil]; 

int selectedRow = 0; 
int a = indexPath.section; 

for (int i=0; i<indexPath.section-1; i++) { 
    selectedRow += [[self.sectionsArray objectAtIndex:i] intValue]; 
} 
selectedRow += indexPath.row; 

しかし...これはindexPath.section = 0(最初の宗派のためのクラッシュイオン)。 NSArrayコールのクラッシュまでループが無限に再生されるため、 Strange !!! for (int i=0; i<0-1; i++) {を強制

は、私が何をしないのですfor (int i=0; i<a-1; i++) {作品

を強制

に動作しますか?

答えて

4

sectionNSUIntegerなので、署名されていません。したがって、符号なし整数の0から1を引くと、-1ではなく非常に大きな数になります。

aintと宣言しているため、aを使用しているときに動作します。 :)

+1

いいえ、あなたは冗談か?しかし、それが効果の本当の原因と思われる。確かに、私はiPhone/Objective-C言語のようなひどい開発環境を見たことはありません。やめろ!しかし、なぜ私はiPhoneのためにコード化しようとしていますか?おそらく私は1つ持っている:-)あなたの助けをありがとう。 – Oliver

+0

符号なし整数はちょうどいいです。ココアを責めないでください。 :) – andyvn22

+0

あなたはWindows、Mac、Windows Mobile、Blackberry、Linux、BSD、他の* NIX ...のために同じ問題をコードしているでしょう。 Java(符号なし整数プリミティブはサポートしていません)を使用しています。これはiOSやObjective-Cの欠陥ではありませんが、ブラシアップが必要な場合があります。 –

関連する問題