我需要你的支持。我的应用程序使用MKMapView来显示地图。我在模拟器和iPhone上测试了它,但当网络打开时,它工作得很好,当网络关闭时,它不会加载,输出控制台返回这些错误:
Could not determine current country code: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo=0x7f800e0e7520 {NSUnderlyingError=0x7f800e0207c0 "The Internet connection appears to be offline.", NSErrorFailingURLStringKey=http://gsp1.apple.com/pep/gcc, NSErrorFailingURLKey=http://gsp1.apple.com/pep/gcc, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, NSLocalizedDescription=The Internet connection appears to be offline.}
这些错误正常吗?还是必须处理?我不知道如何修复这些错误,也不知道在哪个地图视图的功能中检查网络连接。
谢谢并为我糟糕的英语感到抱歉
您应该首先检查是否已连接到网络-如果未连接,则不能使用映射)。
试试这样的东西:
func hasConnection() -> Bool {
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0)).takeRetainedValue()
}
var flags: SCNetworkReachabilityFlags = 0
if SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) == 0 {
return false
}
let isReachable = (flags & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection) ? true : false
}
如果为false,则应禁用该地图。