我是一个新的swift开发人员。我正在使用Swift 4.2和Xcode 10.1。
我正在使用Mamelroy的PhoneNumberKit解析数字以返回国家代码。解析工作得相当好(虽然一开始有点慢)。然而,当给定一个数字(888)或(866),即美国的免费电话号码时,PhoneNumberKit返回AG,AG是安提瓜和巴布达的两位数国家代码AG的NPA前缀是268,甚至不接近888或866。
我准备处理AG的结果并测试它是否真的是安提瓜或巴布达号码,但我想确认这是PhoneNumberKit的问题,而不是我做错了什么。我的代码在下面。

class ContactService {

static let phoneNumberKit = PhoneNumberKit()

static func getFlag(number:String) -> String {

    // Strip out all characters but +
    let basicNumber = number.filter("01234567890+".contains)

    // Get the country code and return it
    do {
        let phoneNumber = try phoneNumberKit.parse(basicNumber)
        let regionCode = phoneNumberKit.getRegionCode(of: phoneNumber)

        return regionCode!

    }
    catch {

        return "PhoneNumberKit was unable to get the region code."
    }
}
}

在我的联系人中返回AG的三个号码是:
1(866)814-9582,
(866)255-9679和
(888)888-7020
请让我知道这是一个已知的问题或是否有其他解决办法。

最佳答案

我在这里找到了答案(尽管我之前搜索过GitHub):https://github.com/marmelroy/PhoneNumberKit/issues/135。它说AG(美国的保护国)是第一个与免费电话号码匹配的国家,所以PhoneNumberKit返回AG。它建议返回用户的区域设置。
我建议还我们。
我把这个问题和答案留在这里,以帮助其他人搜索,从而得到这个意想不到的结果。

关于swift - PhoneNumberKit返回AG以获取免费电话号码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55383473/

10-12 14:49