如何调用函数返回按钮单击xcode中的bool值?

时间:2013-01-17 10:32:45

标签: iphone objective-c xcode

我是ios开发的新手,我只是想创建一个简单的计算应用程序,所以我已经习惯了文本框,我想只允许这些数值。我已将键盘属性设置为数字键盘。现在我想以编程方式进行,我从checks for the String contains Numeric value only

找到了以下函数
+(BOOL) checkforNumeric:(NSString*) str 
{ 
NSString *strMatchstring=@"\\b([0-9%_.+\\-]+)\\b"; 
NSPredicate *textpredicate=[NSPredicate predicateWithFormat:@"SELF MATCHES %@", strMatchstring]; 
if(![textpredicate evaluateWithObject:str]) 
{ 
//////NSLog(@"Invalid email address found"); 
UIAlertView *objAlert = [[UIAlertView alloc] initWithTitle:APP_NAME message:@"please enter valid text." delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Close",nil]; 
[objAlert show]; 
[objAlert release]; 
return FALSE; 
} 
return TRUE; 
} 

现在我想在按钮的点击上调用它,我尝试了一些方法,但它总是显示错误。 请帮助我如何在按钮的单击中使用此功能。

我的实际按钮代码是:

-(IBAction)button{
if (firstValue.text.length>0 && secondvalue.text.length>0) {

    label.text=  [ [NSString alloc] initWithFormat:@"Result is:  %.2f", ([firstValue.text floatValue]) * ([secondvalue.text floatValue])];

}
else if (firstValue.text.length==0 && secondvalue.text.length==0){
    //label.text=    @"please enter the values.";
    UIAlertView  *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Please Enetr First Value and second value." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
    [alert release];
}else if (firstValue.text.length==0) {
    //label.text=    @"please enter the first values.";
    UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Please Enter First Value" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
    [alert release];
}else if (secondvalue.text.length==0) {
    //label.text=    @"please enter the second values.";
    UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Please Eneter Second Value" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
    [alert release];
}
}

请帮帮我。

我已经尝试了以下方法:

BOOL *test= checkforNumeric(firstValue.text);

3 个答案:

答案 0 :(得分:4)

像这样调用你的方法

BOOL isValidString_withNoNumbers = [self checkforNumeric: firstValue.text];
if(isValidString_withNoNumbers)
{
     //your code
}

并且您还应该将方法更改为实例方法

所以它应该是

-(BOOL) checkforNumeric:(NSString*) str // - for instance method //+ for class methods

答案 1 :(得分:0)

以这种方式制作以下内容: -

-(BOOL) checkforNumeric:(NSString*) str 

并在你的.h文件中声明它

答案 2 :(得分:0)

如果您的方法属于同一个类,则必须使用-

重新设置方法
-(BOOL) checkforNumeric:(NSString*) str 

并将其命名为:

[self checkforNumeric: firstValue.text];

如果你在MyCheckClass这样的另一个类中定义+(BOOL) checkforNumeric:(NSString*) str, 你必须导入MycheckClass并调用它:

BOOL isOk = [MyCheckClass checkforNumeric:firstValue.text];