2014-05-15 2 views
-1
defaults = [NSUserDefaults standardUserDefaults]; 
NSLog(@"%@",[defaults objectForKey:@"firsttime"]) 

if([[defaults objectForKey:@"firsttime"]isEqualToString:@"YES"]) 
{ 
    UISwitch *onoff = (UISwitch *) sender; 
    if(onoff.on) 
    { 
     NSLog(@"yes on1 facebookswitch"); 
     facebookSwitch.on = YES; 
     [userDefault setValue:@"true" forKey:@"facebooknotify"]; 

     NSLog(@"on"); 
     if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 
      [validate alertCommonWithoutMessage:NSLocalizedString(@"val_message",nil) :NSLocalizedString(@"val_facebook_login",nil) :@"OK"]; 
      facebookSwitch.on = YES; 
      NSLog(@"yes on2 facebookswitch"); 

     } 
     else { 
      NSLog(@"val_facebook_conf"); 
      [validate alertCommonWithoutMessage:NSLocalizedString(@"val_message",nil) :NSLocalizedString(@"val_facebook_conf",nil) :@"OK"]; 
      facebookSwitch.on = NO; 
      [userDefault setValue:@"false" forKey:@"facebooknotify"]; 
      NSLog(@"yes off1 facebookswitch"); 

이 방법을 사용하고 있지만 응답의 합계는 null입니다.NSUserDefault와 함께 UISwitch를 사용하는 방법

+0

** ** 응답은 null입니다. ** –

+0

전체 코드를 게시하려고하면 몇 줄의 코드를 남겨 두는 것이 의미가 없습니다. –

+1

'처음'값은 어떻게 설정됩니까? 설정 번들에서'UISwitch'에 대해 이야기하고 있습니까? 문제는 정확히 무엇입니까? 게시 된 코드의 어떤 부분에 문제가 있습니까? – rmaddy

답변

0

다음 코드를 사용해보십시오.

// add this code in your switch touch event 
- (IBAction)YourSwitch:(UISwitch*)sender 
{ 
    if (UISwitch.on) 
    { 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setBool:true forKey:@"Sound"]; 
     [defaults synchronize]; 
    } 
    else 
    { 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setBool:false forKey:@"Sound"]; 
     [defaults synchronize]; 
    } 
} 

// add this code in your viewDidload . 
BOOL isSound= [[NSUserDefaults standardUserDefaults] objectForKey:@"Sound"]; 

if (isSound){ 
    _ref_slider.on=TRUE; 
} else { 
    _ref_slider.on=FALSE; 
} 

이 코드가 유용 할 것입니다.

+1

BOOL 값에 문자열을 사용하면 어떤 점이 있습니까? – rmaddy

+0

@rmaddy 그냥 userdefault를 사용하는 방법을 간단하게 이해하기 위해 문자열을 사용하고 있습니다. –

+0

초보 사용자에게 부적절하게 사용하는 방법은 실제로 이해를 돕지 않습니다. – rmaddy

0

가 작동하지 않는 이유에 관해서는, 가장 일반적인 문제가 아니라 문자열 부울 값을 사용하는 것보다, 또한 [userDefault synchronize]

이다, 왜 사용하지 :

[userDefault setBool:YES forKey:@"facebooknotify"]; 

다음 액세스

BOOL notified = [userDefault boolForKey:@"facebooknotify"]; 

에 의해
+1

이 답변은'userDefault '가 무엇인지 모르기 때문에시기 상조입니다. OP는 코드에있는 내용을 표시하지 않습니다. 'defaults'는 NSUserDefaults이지만 우리는'userDefault' 선언을 보지 못했습니다. – rmaddy

+0

아, 나는 잘못 읽었습니다 ... 변수 이름을 구별하지 않았습니다. 나는''''userDefault''''와'''defaults''''를 하나 같이 동일하게 읽었습니다. – dmpontifex

+0

정적으로 값을 전달하는 중 ... 개체를 통해 값을 전달해야합니다. BOOL을 사용하면 어떻게 값을 전달할 수 있습니까? – madhu

관련 문제