현재 Swift Data 를 사용한 앱을 제작 중 이상한 부분을 알게 되었다.
이상하게 생각했던 부분은 버튼을 클릭하면 현재 일의 완료 처리를 하는 부분이다.
Data 의 isCompleted 값을 toggle() 시켜 true로 만든 다음, 앱을 종료시켰다.
그리고 다시 실행을 했을 때 그 Data의 isCompleted 값은 false가 되어야 하는데, true 가 되어 있었던 것이다.
급히 난 해당 부분을 확인해봤으나, 그 toggle 값을 변경 후, Swift Data 에 저장하는 로직은 만들지 않았었다.
그래서 한동안 이 부분이 오류가 아닌가 확인을 해 보았지만, 오류가 아니었다는 사실을 테스트를 통해서 알게 되었다.(시뮬레이션 버그도 아님)
인터넷에 Swift Data AutoSave? 라는 키워드를 검색한 결과, Swift Data 는 기본적으로 isAutoSaveEnabled 가 true 로 되어 있으며, AutoSave 기능은 Swift Data 의 모델이 변경될 때마다 자동으로 저장이 된다고 한다.
물론, 이 기능을 끄고 싶다면, false 로 바꿔주기만 하면 된다.
예시)
WindowGroup {
ContentView()
}
.modelContainer(for: Example.self, isAutosaveEnabled: false) // True: Autosave On | False: Autosave Off