我在 xcode 4.5 中有一个单视图应用程序,试图学习表单验证。2 个文本框,1 个标签,总共 2 个按钮,计算(乘)和 1 个清除按钮将文本和标签设置为“”,我尝试测试“”但得到一些奇怪的结果。我是一个视觉工作室用户,我习惯于设置一个断点,然后将鼠标悬停在一个变量上并查看它的值,但 xcode 不是那么好。我试过测试 ==nil,但没有运气。第一次通过如果我点击计算并且从未输入任何我的测试不起作用的东西。它既不是 nil 也不是 "",可能是未定义的。然后我在 text1 中输入 3,在 text2 中没有任何内容,然后我收到警报,我清除并执行 text2,但不是 text1,我的测试工作正常。我输入 text1,点击计算,获取警报,然后擦除 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