2011-10-20 1 views
0

은 어떻게 든, 아래 언급 된 코드를 삭제하는 것 같다 내 ~/Library/Preferences/NAME.PRODUCT.plistNSUserDefaults setValue : 내 plist를 삭제합니다. 무슨 일이야?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setValue:NO forKey:@"ViewFirstShown"]; 
    [defaults synchronize]; 

나는이 라인을 호출하기 전에 PLIST 파일이 있는지 확인할 수 있습니다. 그러나 plist 파일은 위의 코드를 실행 한 직후 사라집니다.

나는 에 즉시 synchronise 값을 기록한다고 생각했습니다. 잠깐 기다려 보았지만 plist는 다시 나타나지 않습니다.

나는 무엇이 있습니까?

미리 감사드립니다.

답변

1

여기에 귀하의 질문에 대한 답변을 드릴 정보가 충분하지 않습니다.

위 코드가 실행될 때 "viewFirstShown"키가 환경 설정 plist의 유일한 키입니까? 그렇다면 -setValue:forKey: 호출은 환경 설정 plist를 제거 할 환경 설정에서 마지막 키를 제거합니다.

참고로 다른 하나는 -[NSUserDefaults setValue:forKey:]이고 값은 id입니다. NO0L이고 실제로는 nil이므로 여기에있는 모든 값이 제거됩니다. 대신 -[NSUserDefaults setBool:forKey:]을 사용하고 싶을 것입니다.

+0

고마워요! 그게 정말로 일어난 일입니다. 'ViewFirstShown'만이 plist의 유일한 키입니다. 그리고 나는 그것을'setBool'으로 변경했고 모든 것이 잘 작동했습니다! – AReality