2012-02-22 15 views
0

ちょっと私は基本的な電卓(磨きスタイル)を作ろうとしていますが、なぜ2進小数点の入力を止めるコードが機能しないのか分かりません。私は別のスレッドで別の方法を見つけましたが、私のコードがうまくいかない理由を理解したいと思います。私は、isEqualToStringを使用してNSStringの比較..Objective-Cの論理を理解する

- (IBAction)digitPressed:(UIButton *)sender 
{ 
    NSString *digit = [sender currentTitle]; // the number on the button pressed 


    NSString *decimalErrorChecker = [[self display] text]; //search line for . 
    NSRange range = [decimalErrorChecker rangeOfString:@"."]; 



    if ((range.location != NSNotFound) && ((digit == @"."))) { //double if to stop 2nd 
      //SHOW ERROR 


    }else //APPEND DIGIT TO ALREADY ENTERED String. 

答えて

2

を小数のラベルには、既に入力された数字を検索するnsRangeを使用して、その後、数字が追加されるかどうかを確認するために第2の条件は、10進数です助けてくださいよいいえ==

+0

!!!!!!!!! DUHHHHHHHH !!!!!!!!!!! 時々私は誓う.....ありがとう.. – metaDNA

0

小数点が入力されたかどうかを示すフラグを維持しないのはなぜですか。もちろん

-(IBAction)digitPressed:(id)sender { 
    static BOOL didDecimal = NO; 

    // setup yadda 

    const BOOL digitIsDecimal = [digit isEqualToString:@"."]; // your use of == here is bad 
    if (digitIsDecimal && didDecimal) { error; return; } 

    didDecimal |= digitIsDecimal; 

    // append yadda 
} 

、ユーザーは小数点以下を削除した場合、これは助けにはならないので、おそらくあなたはUITextViewDelegateで、いくつかのロジックを実装する必要があります...

+0

私は何をやったのか、私はBACKボタンを追加していないが、はっきりしたボタンを追加していない、クリアボタン付きの私の問題は、私がテキストラベルなぜなら、そのような単純な方法は、そのような単純な方法を理解することができないからです。そのような単純な方法。(IBAction)clearBtn { [[self display] setText:Nil]; } なぜこのプログラムがクラッシュするのですか? – metaDNA

+0

自己はどのクラスですか? – QED

+0

uiviewcontroller – metaDNA