2009-06-24 5 views
0

iPhoneでアプリケーションを開発していますrange.lengthを整数と比較できません

私のコードでNSRangeオブジェクトを使用しています。私は、コンソール上でrange.lengthの値を印刷するとき

(range.length == 0)の場合 { が何か を行う}

それは条件が有効を保持している場合は、私を意味し、どの0を書き込みます。しかし、何かをするためにループの中に入ることはありません。

私が間違っているかもしれない何か手掛かり?

おかげ AJ

答えて

1

NSRangeは、次のように定義された構造体である:

typedef struct _NSRange { 
    NSUInteger location; 
    NSUInteger length; 
} NSRange; 

(myRange.length == 0)が真でない場合、あなたの範囲の長さが0ではありません。比較は正しいです、あなたの問題を他の場所で検索してください。デバッガを使用して、何が起こっているかを正確に確認します。

+0

たとえば、if文の直前の値のNSLogを実行してから、再度if文のすぐ内側に値を入力してみてください。 NSLogでも(range.length == 0)の値を使用して、期待どおりの結果を返すかどうかを確認することができます。 –

+0

お返事ありがとうございます。 NSLogは正しい値を表示しました。しかし、これは私がそれを働かせる方法です。 range.lengthの戻り値の型はNSUIntegerです。 range.lengthをNSIntegerにキャストして入力しなければなりませんでした。それは...ループに入りました! ご回答ありがとうございます –

関連する問題