I just need to check the internet connection availability before start communicating with the service in my iphone App. I am using Swift 1.2 and Xcode 6 as my development environment...
I've just done some research and found this stackoverflow LINK in objective C.
Therefore I just tried to find a similar solution in SWIFT and found the following link
https://coderwall.com/p/mhxbpq/checking-for-internet-connection-availability
Just to make things easy the content in that link is as follows...
import Foundation
import SystemConfiguration
public class Reachability {
class func isConnectedToNetwork() -> 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
}
}
And check the connection availability like this...
if Reachability.isConnectedToNetwork()
{
println("Haz Interwebz!")
}
else
{
println("Oh noes! No interwebz!!!")
}
NOTE: To work this needs to add SystemConfiguration.framework to the project (For "Linked Frameworks and Libraries")....
So.... My question is, I am quite new for iOS development and NOT quite sure how good and relaible it is to use this logic to get it done. Most of the stuff in that class are completely not clear, but the small tests I've done works good!!!
Like to hear what more experiance ios developers have to say about this.