CountryKit Logo

Build Status

CountryKit 是一个 Swift 库,适用于 iOS、macOS、Linux、tvOS 和 watchOS,其中包含根据《统计用途的国家或地区标准代码》(也称为 UN M49)的世界所有大洲、区域、次区域和国家/地区的数据。

国家/地区数据包含:

内容

要求

交流

安装

Swift Package Manager

Swift Package Manager 是用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,可以自动执行下载、编译和链接依赖项的过程。

需要 Xcode 11+ 才能使用 Swift Package Manager 构建 CountryKit。

要使用 Swift Package Manager 将 CountryKit 集成到您的 Xcode 项目中,请将其添加到您的 Package.swift 文件的 dependencies 值中。

dependencies: [
    .package(url: "https://github.com/frederik-jacques/countrykit.git", .upToNextMajor(from: "0.1.0"))
]

手动集成

如果您不想使用 Swift Package Manager,您可以手动将 CountryKit 集成到您的项目中。


用法

国家/地区提供程序

每个大洲都有 5 个国家/地区提供程序。

  1. AfricanCountriesProvider:非洲的所有数据
  2. AmericasCountriesProvider:美洲的所有数据
  3. AsianCountriesProvider:亚洲的所有数据
  4. EuropeanCountriesProvider:欧洲的所有数据
  5. OceanianCountriesProvider:大洋洲的所有数据

如果您想要世界上的所有国家/地区并进行特定的过滤,可以使用 WorldProvider

每个国家/地区提供程序都遵循 CountryProvidable 协议,该协议具有以下属性和方法。

/// All countries for this continent.
var countries: [Country] { get }
    
/// Get a country for a given country code.
/// - Parameter countryCode: The numeric country code
/// - Returns: The country for the given country code (optional)
func get(countryCode: Int) -> Country?
    
/// Get a list of countries for a given continent.
/// - Parameter continent: The continent
/// - Parameter sortBehavior: The sort behavior
/// - Returns: A list of countries
func get(continent: Continent, sortBehavior: CountrySortBehavior) -> [Country]
    
/// Get a list of countries for a region.
/// - Parameter region: The region
/// - Parameter sortBehavior: The sort behavior
/// - Returns: A list of countries
func get(region: Region, sortBehavior: CountrySortBehavior) -> [Country]
    
/// Get a list of countries for a subregion.
/// - Parameter subregion: The subregion
/// - Parameter sortBehavior: The sort behavior
/// - Returns: A list of countries
func get(subregion: Subregion, sortBehavior: CountrySortBehavior) -> [Country]

/// Get a list of countries for a given region and subregion.
/// - Parameter region: The region
/// - Parameter subregion: The subregion
/// - Parameter sortBehavior: The sort behavior
/// - Returns: A list of countries
func get(region: Region, subregion: Subregion, sortBehavior: CountrySortBehavior) -> [Country]

大洲/区域和次区域

大洲 区域 次区域
非洲
北非
撒哈拉以南非洲
西非
东非
中非
南部非洲
美洲
北美洲
北部美洲
拉丁美洲和加勒比地区
南美洲
中美洲
加勒比地区
亚洲
东亚
南亚
东南亚
中亚
西亚
欧洲
南欧
东欧
北欧
海峡群岛
西欧
大洋洲
澳大利亚和新西兰
美拉尼西亚
密克罗尼西亚
波利尼西亚

示例

获取按名称(升序)排序的所有欧洲国家/地区。

import CountryKit

let provider = EuropeanContinentProvider()
provider.get(sortBehavior: .ascending)

获取南美次区域的所有国家/地区,按名称(降序)排序。

import CountryKit

let provider = AmericasContinentProvider() // Or use WorldProvider
provider.get(subregion: .southAmerica, sortBehavior: .descending)

按国家/地区代码获取国家/地区

import CountryKit

let provider = WorldProvider()
let belgium = provider.get(countryCode: 56)

获取国家/地区名称的本地化版本

如果您想要英文名称,您可以直接使用 Country 结构体上的 name 属性。但是,如果您想在您的应用程序中本地化国家/地区名称,您可以使用 translation(for:) 方法并传入 Locale

import CountryKit

let locale = Locale(identifier: "fr")

let provider = WorldProvider()
let belgium = provider.get(countryCode: 56)
let countryNameInFrench = belgium.translation(for: locale) // Belgique

贡献者

许可

CountryKit 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。