Я обнаружил эту ошибку, когда пытался получить IP-адрес через Wi-Fi. После установки ткани я получил эту ошибку
0 MY_APP 0x1020e538c specialized FixedWidthInteger.init<A>(_:radix:)
(My_Screen.swift)
После нахождения ошибки метода я нашел следующую строку:
если addrFamily == UInt8 (AF_INET) || addrFamily == UInt8 (AF_INET6) , связанный с FixedWidthInteger:
публичная структура UInt8: FixedWidthInteger, UnsignedInteger
Я не знаю, почему возникла эта проблема. кто-нибудь может помочь?
Вот мой полный код, чтобы получить текущий IP-адрес
func getIPAddress() -> String? {
var address: String?
var ifaddr: UnsafeMutablePointer<ifaddrs>? = nil
if getifaddrs(&ifaddr) == 0 {
var ptr = ifaddr
while ptr != nil {
defer { ptr = ptr?.pointee.ifa_next }
let interface = ptr?.pointee
let addrFamily = interface?.ifa_addr.pointee.sa_family
if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {
if let name = String(cString: (interface?.ifa_name)!) as String?, name == "en0" {
var hostname = [CChar](repeating: 0, count: Int(NI_MAXHOST))
getnameinfo(interface?.ifa_addr, socklen_t((interface?.ifa_addr.pointee.sa_len)!), &hostname, socklen_t(hostname.count), nil, socklen_t(0), NI_NUMERICHOST)
address = String(cString: hostname)
}
}
}
freeifaddrs(ifaddr)
}
return address
}
ПРИМЕЧАНИЕ ОБНОВЛЕНИЯ:
У меня 4 устройства ios 12.1 + 1 устройство ios 12.2, только 1 устройство ios 12.1 + устройство ios 12.2 сбой, 3 других устройства работают нормально.