0

私はios開発に不慣れです。計算用の単純なアプリケーションを作成しようとしています。そのため、テキストボックスに慣れていて、これらの数値のみを許可したいと考えています。私はすでにキーボードのプロパティを数値パッドに設定しています。今、私は文字列のチェックから次の関数が数値のみを含むことを見つけたので、プログラムでそれをしたい

+(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);
4

3 に答える 3

4

このようにメソッドを呼び出します

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

また、メソッドをインスタンスメソッドに変更する必要があります

だからそうあるべきだ

-(BOOL) checkforNumeric:(NSString*) str // - for instance method //+ for class methods
于 2013-01-17T10:36:27.200 に答える
0

次の行をこのようにします:-

-(BOOL) checkforNumeric:(NSString*) str 

.h ファイルで宣言します

于 2013-01-17T10:37:13.003 に答える
0

メソッドが同じクラスにある場合は、メソッドを再定義する必要があります。-

-(BOOL) checkforNumeric:(NSString*) str 

そしてそれを呼び出す:

[self checkforNumeric: firstValue.text];

MyCheckClass などの別のクラスで定義する場合は+(BOOL) checkforNumeric:(NSString*) str、MycheckClass をインポートして呼び出す必要があります。

BOOL isOk = [MyCheckClass checkforNumeric:firstValue.text];
于 2013-01-17T10:43:25.143 に答える