2020年10月28日 星期三

swift 各國國家列表資料(NSLocale)

今天要來寫簡單的各國資料列表取得,顯示方式就看個人或公司需求為主了,今天只做列表資料的簡單說明。基本上我是用最簡單的方式去取得,取得方式排序等等有很多方法再由個人自行探討摟~

首先寫作一個model(如果你是練習懶得做就換方式做吧)

struct countryModel {

    var name:String

    var countryCode:String

    var currencyCode:Any?

    var currencySymbol:String

    

    

    

    init(name:String, countryCode:String, currencyCode:Any?, currencySymbol:String) {

        self.name = name

        self.countryCode = countryCode

        self.currencyCode = currencyCode

        self.currencySymbol = currencySymbol

    }

}

然後是取得資料,要寫在哪也是看個人摟~

 let countryCode = NSLocale.isoCountryCodes

        // 取得使用者 iOS 設定的語系

        let preferredLanguages:String = NSLocale.preferredLanguages.first!

        for code in countryCode  {

            let id = NSLocale.localeIdentifier(fromComponents: [NSLocale.Key.countryCode.rawValue: code])

            //帶入本機語系代碼取得該國國名

            let name = NSLocale(localeIdentifier: preferredLanguages).displayName(forKey: NSLocale.Key.identifier, value: id)

            

            let locale = NSLocale.init(localeIdentifier: id)

            //該國國名英文縮寫

            let countryCode:String = locale.object(forKey: NSLocale.Key.countryCode) as! String

            let currencyCode = locale.object(forKey: NSLocale.Key.currencyCode)

            //該國貨幣代碼或符號

            let currencySymbol = locale.object(forKey: NSLocale.Key.currencySymbol) as! String

            let countryM = countryModel(name: name!, countryCode: countryCode, currencyCode: currencyCode, currencySymbol: currencySymbol)

            country.append(countryM)

          }

顯示效果如下:(因我沒刻意做資料排序,取出直接就引用了,你們可以先做排序在使用)

英文:



中文:





 

沒有留言:

張貼留言