2014-07-25 4 views
0

사용자 사전 기본값의 키 상태 변경을 추적하는 방법이 있는지 궁금합니다.사용자 사전의 키가 변경되었는지 확인하는 방법은 무엇입니까?

사실인지 거짓인지 확인할 필요가 없습니다. 변경된 사항 만 알면됩니다.

내 시나리오는 다음과 같습니다. 일부 기능의 잠금을 해제하는 iAP 제품이 있으며 앱을 다시 부팅하거나 로그 아웃하지 않고도 구입 즉시 사용할 수 있습니다.

그래서 기능이있는보기에서 willAppear 메서드를 구현하여 구매가 이루어 졌는지 확인합니다.

키가 맞으면 (구매 완료) 몇 가지 작업을 수행하지만 사용자가 iAP 제품을 구입할 때마다이 작업을 수행 할 필요가 없습니다.

감사합니다.

답변

3

여기에는 KVO (Key Value Observer)를 사용할 수 있습니다.

당신이 specic 키를 사용하여 변경 감지하려면

:

[[NSUserDefaults standardUserDefaults] addObserver:self 
             forKeyPath:@"YOUR_KEY_HERE" 
              options:NSKeyValueObservingOptionNew 
              context:NULL]; 

NSUserDefaultsDidChangeNotification를 사용 NSuserdefauls 어떤 키가 변경 될 때마다 변경 ..

을 감지 할 경우 변경 것 당신은 감지 할 수 있습니다 핵심 가치로 행해지십시오. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsChanged:) name:NSUserDefaultsDidChangeNotification object:nil];

을 한 후 사용하여 감지 :

그래서 먼저 옵저버를 추가

- (void)defaultsChanged:(NSNotification *)notification { 
    // Get the user defaults 
    NSUserDefaults *defaults = (NSUserDefaults *)[notification object]; 

    NSLog(@"%@", [defaults objectForKey:@"YOUR_KEY"]); 
} 

은 당신을 도움이되기를 바랍니다.

+0

원하는 키를 사용하는 것뿐만 아니라 사용자 기본값의 변경으로 호출됩니다. –

+0

답변을 업데이트했습니다. –

-1

이와 관련하여 리 액티브 코코아를 사용할 수 있습니다. 여기

더 : https://github.com/ReactiveCocoa/ReactiveCocoa

ReactiveCocoa은 기능적인 반응 프로그래밍에 의해 영감을받은 것입니다. RAC는 현재 위치와 미래 값을 캡처하는 신호 (RACSignal로 표시)를 제공합니다.

신호를 연결, 결합 및 반응시킴으로써 지속적으로 값을 관찰하고 업데이트하는 코드가 없어도 소프트웨어를 선언적으로 작성할 수 있습니다.

+0

왜 투표가 끝났습니까? –

관련 문제