在swift中更改应用程序的默认时区

在swift中更改应用程序的默认时区,swift,timezone,Swift,Timezone,我正在使用picker view选择一个新时区,在这里我为应用程序设置了一个新的默认时区: if let local = selectedTimeZone { let timeZone = TimeZone(identifier: local) NSTimeZone.default = timeZone! } 例如,这里,selectedTimeZone等于“美国/芝加哥” 无论何时打开此页面,我都会读取时区的默认值并将其显示为所选时区: if let index

我正在使用picker view选择一个新时区,在这里我为应用程序设置了一个新的默认时区:

 if let local = selectedTimeZone {
     let timeZone = TimeZone(identifier: local)
     NSTimeZone.default = timeZone!
 }
例如,这里,
selectedTimeZone
等于
“美国/芝加哥”

无论何时打开此页面,我都会读取时区的默认值并将其显示为所选时区:

  if let index = timeZone.firstIndex(where: { $0.zoneName == NSTimeZone.default.identifier }) {
     pickerViewField.textField.text = timeZone[index].zoneName
  } 
当选择一个新时区时,它似乎可以工作,在应用程序中,用户可以四处走动,当用户打开设置时,选择器视图标签显示新时区。 但当我完全关闭应用程序并再次打开它时,时区将返回设备的默认时区,而不是应用程序中选择的新时区

现在我的问题是,;我是否需要将时区的新值存储在某个位置,并且当应用程序打开时,我首先再次设置新值?还是我的代码有问题


非常感谢

您需要手动保留时区。通常的做法是使用我认为是这样的,但这没有意义:)当你设置新时区时,它应该由iOS处理,对吗?你的应用程序的时区由
基金会
框架处理。除非你告诉它,否则它不会在应用程序启动之间保持它,就像任何其他配置参数一样。