Swift反向地理编码总是以相同的语言获取州名

Swift反向地理编码总是以相同的语言获取州名,swift,Swift,我需要获取用户所在州的名称。为此,我创建了以下方法: func getState(){ if location != nil{ CLGeocoder().reverseGeocodeLocation(location) { (placemarks, error) -> Void in if error != nil {} else { let p

我需要获取用户所在州的名称。为此,我创建了以下方法:

func getState(){
    if location != nil{
        CLGeocoder().reverseGeocodeLocation(location)
        { (placemarks, error) -> Void in

            if error != nil {}
            else
            {
                let pm = CLPlacemark(placemark: placemarks![0] as CLPlacemark)

                var subThoroughtare:String = ""
                var thoroughfare:String = ""
                var subLocality:String = ""
                var subAdministrativeArea:String = ""
                var postalCode:String = ""
                var country:String = ""

                if pm.subThoroughfare != nil {subThoroughtare = pm.subThoroughfare!}
                if pm.thoroughfare != nil {thoroughfare = pm.thoroughfare!}
                if pm.subLocality != nil {subLocality = pm.subLocality!}
                if pm.subAdministrativeArea != nil {subAdministrativeArea = pm.subAdministrativeArea!}
                if pm.postalCode != nil {postalCode = pm.postalCode!}
                if pm.country != nil {country = pm.country!}
                let state = pm.administrativeArea;

                self.filterDataSet(state: state!)
            }
        }
    }
}

问题是州名总是用电话语言,但我需要用英语。如何将其设置为英语作为默认值

有一个
CLGeocoder.reverseGeocodeLocation()
的变体,它接受一个参数
preferredLocale
。试着以美国英语作为语言环境。应该可以了。

对不起,我无法将其设置为“我们”或“英语”。你能再多点吗specific@MarkusGerlach首先创建区域设置:
let locale=locale(标识符:“en_US”)
。然后将其传递给函数:
CLGeocoder().reverseGeocodeLocation(location,preferredLocale:locale){(placemarks,error)->Void in…
@MarkusGerlach并将
let pm=CLPlacemark(placemark:placemarks![0]作为CLPlacemark)
更改为
if let pm=placemarks{
`@LeoDabus这一点很好。这对编写的崩溃来说是一个双重打击。另一点是,他将所有属性(除了他唯一需要的状态)检查为nil,而不是将它们展开。
如果让state=placemarks?.first?.administrativeArea{
self.filterDataSet(state:state)