2012-03-06 2 views
3

iOS의 NSUserDefaults에서 내부적으로 복구 할 수 있습니까? 예를 들어,이 경우 제기 된 특정 예외가 있습니까? 그러면 정상적으로 응답 할 수 있습니까? 내 사용자 중 일부는 부패 설정으로 인해 시작시 충돌이 발생한다고 생각합니다 (이메일을 보내지 않아서 이메일을 보내지 않아도 됨). 내 애플리케이션이 NSUserDefaults를 자동으로 재설정 할 수 있으면 좋을 것입니다.NSUserDefaults가 자동으로 재설정 됨

관련 질문 : NSUserDefaults를 의도적으로 손상시켜이 상황을 테스트하려면 어떻게해야합니까?

+2

더 나은 질문 : 왜 처음에는 기본값이 손상됩니까? 이 일을하는 NSUserDefaults는있을 것 같지 않습니다. 불이행이 기록 된 곳을주의 깊게보고, 그것이 무엇을 쓰고 있는지보십시오. – trudyscousin

+1

손상된 경우 쓰레기 값이 있다는 뜻입니까? 그리고 예인 경우 예기치 않은 값을 처리하고 기본값으로 재설정 할 수 있는지 확인하십시오. – vipinagg

+0

이들은 모두 뛰어난 점입니다. 나는 (매우 불행히도) 충돌의 특수한 상황을 확신하지 못하고 테스트에서 경험하지 못했다. 그럼에도 불구하고 나는 디폴트 값을 읽는데 더 많은 안전 장치를 사용할 수 있다고 확신한다. 어쩌면 이것은 더 구체화되지 않은 정의되지 않은 질문 일 것입니다. – shawkinaw

답변

0

나는 행운의 추측을 해보자 :

시도가 시작시 NSUserDefaults에서 개체의 클래스에 대한 검사를 추가. 그래서 그 중 하나가 코드에서 사용되기 전에. 또는 거기에 있어야하는 것에 따라 다른 것들을 확인하십시오.

"손상"하려면 예를 들어 NSNumber 대신 NSArray을 저장하려고합니다. 그런 다음 앱을 다시 실행하십시오.

희망 하시겠습니까?

+1

위의 주석에서 제안한 것처럼 모든 NSUserDefaults 읽기에 더 많은 코드를 추가하여 값이 올바른지 확인했습니다. 꽤 많은 테스트를 한 후에는 결코 NSUserDefaults를 충돌시킬 수 없으므로 문제의 원인이되는 값으로 수행해야합니다. – shawkinaw

관련 문제