2017-12-02 3 views
0

Mac AppStore에서 설치 한 샌드 박스 응용 프로그램이 있습니다.샌드 박스 제거 후 NSUserDefaults 제거 Mac app 제거

NSUserDefaults에 씁니다. 앱이 삭제되면 NSUserDefaults이 사라질 것으로 예상됩니다 (iOS 샌드 박스 앱의 경우와 같은 방식으로 삭제됩니다).

그러나 NSUserDefaults은 뒤쳐져 있습니다. 결과적으로 사용자가 앱을 다시 설치하면 NSDefaults에 있던 것과 동일한 항목에 액세스 할 수 있습니다 (제 경우에는 부작용입니다).

제거 할 때 NSUserDefaults을 삭제할 수있는 방법이 있는지 궁금합니다. (특히 앱 스토어 샌드 박스 응용 프로그램의 경우)

답변

1

일반적으로 macOS는 제거 프로그램을 실행하지 않고 응용 프로그램을 휴지통으로 드래그하여 삭제할 수 있으므로 제거시 사용자 기본값 삭제와 같은 작업을 강제 실행하는 방법은 없습니다.

개인적으로이 기능은 버그가 아니라 기능이라고 생각합니다. 사용자로서 응용 프로그램이 손상되어 제거하고 다시 설치해야하는 경우 프로세스에서 해당 응용 프로그램과 관련된 모든 데이터를 다시 설정해야합니다. 그러나 YMMV.

이것이 실제로 문제가되는 경우 사용자 기본값에 NSURLContentModificationDateKey 또는 NSURLAddedToDirectoryDateKey의 응용 프로그램 값을 저장하고 응용 프로그램을 시작할 때 일치하는지 테스트 할 수 있습니다. 그렇지 않으면 앱이 다시 설치되었을 가능성이 있으며 기본값 데이터를 누락시킬 수 있습니다. 나는 경고없이 파괴 된 데이터를 가지고 있기 때문에 Mac을 좋아하고 많은 사용자가 기대하는 것에 반하는 것이기 때문에 사용자에게이 작업을하기 전에 대화 상자를 표시하는 것이 좋습니다. 앱을 최신 버전으로 업데이트 할 때마다 데이터를 손상시키지 않습니다.)

+0

ContentModificationDate에 대한 흥미로운 아이디어. 감사. 나는 그것이 AppStore가 아닌 앱을위한 기능으로 취급 될 수 있다는 것에 동의한다. 그러나 앱 스토어 앱은 다릅니다 (iOS에 훨씬 가깝습니다). –

+0

@VictorRonin Mac App Store 앱은 여전히 ​​Mac 앱이므로 Mac 앱처럼 동작해야합니다. 앱이 그렇지 않다면 일부 사용자가 악화 될 것입니다. –