1

フォーム検証を学習しようとしている xcode 4.5 に単一のビュー アプリがあります。2 つのテキスト ボックス、合計 2 つのボタンを含む 1 つのラベル、計算 (乗算) およびテキストとラベルを "" に設定する 1 つのクリア ボタン、"" をテストしようとしましたが、奇妙な結果が得られました。私はビジュアル スタジオのユーザーであり、ブレーク ポイントを設定し、変数の上にマウスを置いてその値を確認することに慣れていますが、xcode はそれほど親切ではありません。==nil のテストを試みましたが、うまくいきませんでした。初めて計算を押して何も入力しなかった場合、テストは機能しません。nil でも "" でもなく、おそらく未定義です。次に、text1 に 3 を入力し、text2 には何も入力しないとアラートが表示され、クリアを押して text2 を実行しますが、text1 は実行しません。テストは正常に動作します。text1 を入力し、calculate を押してアラートを取得し、text1 を消去して text2 を入力し、アラートは入力しません。試行間でクリアしない限り、アラートは機能しません。最終的に数値をチェックする必要があるので、試しました

 float a=([text1.text floatValue]);
 float b=([text1.text floatValue]);
 if(a==NaN||b==NaN){
 }

しかし、これはどちらでも機能しません。エラーが発生します。私は私が新しいことを知っていますが、これは苦痛です...以下は私のコードです、私に優しくしてください...

//
//  ViewController.m
//  calc2
//
//  Created by russell on 11/18/12.
//  Copyright (c) 2012 russell. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction)button1{

if (text1.text==@""||text2.text==@"") {


    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Blank Values"
                                                     message:@"You cannot multiply blanks"
                                                    delegate:self
                                                    cancelButtonTitle:@"Ok"
                                                    otherButtonTitles:nil]
                                                    autorelease];
    // optional - add more buttons:

    [alert show];

} else {
    float x=([text1.text floatValue]);
    float c=x*([text2.text floatValue]);
    label1.text=[[NSString alloc]initWithFormat:@"%.2f",c];
}



}

- (IBAction)button2{
text1.text=@"";
text2.text=@"";
label1.text=@"";
}


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end
4

0 に答える 0