Swift 包,包含来自 https://www.theiphonewiki.com/wiki/Models 的所有设备。一个常见的用例是想要将设备标识符(也称为机器标识符)例如 iPhone10,1 转换为用户友好的名称;iPhone 8。
每个设备都有一个 all
属性。使用它来查找、过滤、映射等。以下是一些示例。
let identifier = "iPad3,6"
let iPhone = iPhone.all.first { $0.identifier == identifier }
iPhone.generation // iPad (4th generation)
let identifier = "iPad3,6"
let iPhone = DeviceList().all[identifer].first!
iPhone.generation // iPad (4th generation)
let colors = iPadAir.all.filter {
$0.generation == "iPad Air 2" &&
$0.storage == "64 GB"
}.map { $0.finish }
Set(colors).sorted() // ["Gold", "Silver", "Space Gray"]
let identifiers = AppleWatch.all.map { $0.identifier }
Set(identifiers).sorted() // ["Watch1,1", "Watch1,2", "Watch2,3", ...]
let iPad = iPadMini.all.first {
$0.identifier == "iPad4,5" &&
$0.finish == "Silver" &&
$0.storage == "16 GB"
}!
iPad.model.components(separatedBy: ", ") // ["ME814", "ME818", "MF074", "MF075", "MF076", "MF544"]
请参阅 FAQ 了解为何在某些示例中使用 Set
。
将以下内容添加到您的项目
https://github.com/ptrkstr/Devices
您可以通过访问 Types 来查看它们。
这是因为很多设备型号的发布会根据地区略有不同,例如在中国,iPhone 可能配备两个 SIM 卡槽,而在西方地区则包含 1 个卡槽 [和一个 esim]。这些不同的设备往往有不同的 “A” 编号、FCC ID、标识符和型号。如果您正在搜索外观/颜色或存储容量,您可能需要删除重复项。
数据可能尚未可用。
型号字段有时包含多个型号名称。这些可以使用 .model.components(separatedBy: ", ")
分割。标识符字段有时包含多个标识符。这些可以使用 .identifier.components(separatedBy: "\n")
分割。
每天都会运行检查,查看 此 设备列表是否已更改。如果更改,将提出拉取请求,并且我会收到通知进行审查。您最多可以预期几天延迟。