2014-12-24 4 views
-2

2 개의 버튼이있는 작은 응용 프로그램이 있습니다. 1 버튼은 텍스트 입력을 저장하고 다른 하나는 저장된 입력을 텍스트 필드에로드합니다. 하지만 유효성을 검사하는 방법을 모르겠습니다. 지금은 텍스트 필드가 비어있는 경우에도 절약됩니다. 그래서 다음과 같은 유효성 확인을하고 싶습니다 :텍스트 필드 데이터를 저장하지만 데이터를 확인하십시오

if textfield = null 다음 저장하지 마십시오.

My .m 

- (IBAction)save:(id)sender { 

    // Frist Save String 

    NSString *saveString = field1.text; 
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:saveString forKey:@"saveString"]; 
    [defaults synchronize]; 

    // Second Save String 

    NSString *saveString2 = field2.text; 
    NSUserDefaults * defaults2 = [NSUserDefaults standardUserDefaults]; 
    [defaults2 setObject:saveString2 forKey:@"saveString2"]; 
    [defaults2 synchronize]; 


} 
- (IBAction)load:(id)sender 
{ 

    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    NSString * loadString = [defaults objectForKey: @"saveString"]; 
    [field1 setText:loadString]; 

    NSUserDefaults * defaults2 = [NSUserDefaults standardUserDefaults]; 
    NSString * loadString2 = [defaults2 objectForKey: @"saveString2"]; 
    [field2 setText:loadString2]; 

} 


- (IBAction)dismiss1:(id)sender { 
    [sender resignFirstResponder]; 

} 


- (IBAction)dismiss2:(id)sender { 
    [sender resignFirstResponder]; 




My .h 

@interface ViewController : UIViewController 
{ 
    IBOutlet UITextField *field1; 
    IBOutlet UITextField *field2; 


} 

//Database Actions 

- (IBAction)save:(id)sender; 
- (IBAction)load:(id)sender; 

//Keyboard Dismisses 

- (IBAction)dismiss1:(id)sender; 
- (IBAction)dismiss2:(id)sender; 
+1

wantValidation이 다음 코드를 작성하면. – Andy

+0

if (field1.text.length == 0 && [field1.text isEqualToString : @ ""]) { // 데이터가 없음} –

+0

여러분, nikita가 내 문제를 해결해 주셔서 감사합니다 ... 나는 초보자입니다. – Poetazus

답변

-1

는 다른 비어있는 경우에도 두 필드를 저장하려면 다음을 수행이

- (IBAction)save:(id)sender { 




     if([field1.text isEqualToString:@""] && [field2.text isEqualToString:@""]) { 
      // There's no text in the textbox. 
     } 
     else{ 
      // Frist Save String 

      NSString *saveString = field1.text; 
      NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
      [defaults setObject:saveString forKey:@"saveString"]; 
      [defaults synchronize]; 

      // Second Save String 

      NSString *saveString2 = field2.text; 
      NSUserDefaults * defaults2 = [NSUserDefaults standardUserDefaults]; 
      [defaults2 setObject:saveString2 forKey:@"saveString2"]; 
      [defaults2 synchronize]; 

     } 
     } 
+0

감사합니다. 당신은 스포츠, 당신은 대답을 다른 문제에서 일한 .. 하나의 게시물에 너희들이 나에게 3 문제를 해결 :) 초보자 문제 – Poetazus

+0

당신은 환영합니다 @ Poetazus – Sport

0
- (IBAction)save:(id)sender 
{ 
    if ([self ControlValidation]==YES) 
    { 
     NSString *saveString = field1.text; 
     NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setObject:saveString forKey:@"saveString"]; 
     [defaults synchronize]; 

     // Second Save String 

     NSString *saveString2 = field2.text; 
     NSUserDefaults * defaults2 = [NSUserDefaults standardUserDefaults]; 
     [defaults2 setObject:saveString2 forKey:@"saveString2"]; 
     [defaults2 synchronize]; 
    } 
} 
-(BOOL)ControlValidation 
{ 
    if ([self isEmpty:field1.text ]==YES) 

    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"Text Field1 is empty" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     return NO; 
    } 
    if ([self isEmpty:field2.text ]==YES) 

    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"Text Field2 is empty" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 

     return NO; 
    } 
    return YES; 
} 


-(BOOL)isEmpty:(NSString *)str 

{ 
    if (str == nil || str == (id)[NSNull null] || [[NSString stringWithFormat:@"%@",str] length] == 0 || [[[NSString stringWithFormat:@"%@",str] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0) 
    { 
     return YES; 

    } 

    return NO; 
} 
+0

잘 확인하고 공백을 제거 할 완료 :) –

+0

감사합니다 nikita! 그것은 작동했습니다 :) – Poetazus

+0

수동으로 팝업 (경고보기)를 만들었습니다. 2 가지 문제를 해결했습니다. :) 이제 데이터가 valide 일 때 경고 표시를해야합니다. :)이 앱을 게시하면 감사합니다. – Poetazus

0

처럼하려고합니다.

- (IBAction)save:(id)sender { 

// First Save String 
    if([self textFieldTextIsValid:field1]){ 

    NSString *saveString = field1.text; 
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:saveString forKey:@"saveString"]; 
    [defaults synchronize]; 

    } 


// Second Save String 
    if([self textFieldTextIsValid:field2]){ 

    NSString *saveString2 = field2.text; 
    NSUserDefaults * defaults2 = [NSUserDefaults standardUserDefaults]; 
    [defaults2 setObject:saveString2 forKey:@"saveString2"]; 
    [defaults2 synchronize]; 

    } 
} 

-(BOOL)textFieldTextIsValid:(UITextField *)textfield{ 
    if([textfield.text length] !=0){ 
    return YES; 
    }else{ 
    return NO; 
    } 
} 

당신은 둘 다 텍스트가 다음

- (IBAction)save:(id)sender { 

    if([self textFieldTextIsValid:field1] && [self textFieldTextIsValid:field2]){ 

// First Save String 
    NSString *saveString = field1.text; 
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:saveString forKey:@"saveString"]; 
    [defaults synchronize]; 


// Second Save String 
    NSString *saveString2 = field2.text; 
    NSUserDefaults * defaults2 = [NSUserDefaults standardUserDefaults]; 
    [defaults2 setObject:saveString2 forKey:@"saveString2"]; 
    [defaults2 synchronize]; 

    } 
} 

이 방법을 다음과 같이 함께 IBOutlet이 방법을 저장 변경이있는 경우에만 사용자가 확인하기 위해 추가 기준을 추가 넣다, 필드 모두를 저장하려는 경우 귀하의 텍스트 필드에 입력되는 텍스트의 온전한, 그럼 당신은 단지 'textFieldTextIsValid'방법에 논리를 추가하고 클래스의 어디서나 그것을 호출 할 수 있습니다.

관련 문제