---
title: SCNetworkReachability
framework: systemconfiguration
role: collectionGroup
role_heading: API Collection
path: systemconfiguration/scnetworkreachability-g7d
---

# SCNetworkReachability

## Overview

Overview important: All SCNetworkReachability functions are deprecated, because network conditions change too frequently for preflight reachability tests to be accurate and useful. Instead of trying to perform a preflight check, just attempt your connection. The connection may not be available immediately, but you can use waitsForConnectivity in your URLSessionConfiguration to automatically connect as soon as it’s possible to do so. If you’re using the Network framework, you can monitor the state of an NWConnection (nw_connection_t in Objective-C), which lets you know when the connection is waiting for a change in connectivity before automatically proceeding. In limited cases, if you need to change a network request based on the network you’re using, use NWPathMonitor to observe the system networking state. The SCNetworkReachability programming interface allows an application to determine the status of a system’s current network configuration and the reachability of a target host. A remote host is considered reachable when a data packet, sent by an application into the network stack, can leave the local device. Reachability doesn’t guarantee that the data packet will actually be received by the host. The SCNetworkReachability programming interface supports a synchronous and an asynchronous model. In the synchronous model, you get the reachability status by calling the SCNetworkReachabilityGetFlags(_:_:) function. In the asynchronous model, you can schedule the SCNetworkReachability object on the run loop of a client object’s thread. The client implements a callback function to receive notifications when the reachability status of a given remote host changes. Note that these functions follow Core Foundation naming conventions. A function that has “Create” or “Copy” in its name returns a reference you must release with the CFRelease function. For information about detecting and interpreting errors generated by calling these functions, see System Configuration.

## Topics

### Creating a Reachability Reference

- [SCNetworkReachabilityCreateWithAddress(_:_:)](systemconfiguration/scnetworkreachabilitycreatewithaddress(_:_:).md)
- [SCNetworkReachabilityCreateWithAddressPair(_:_:_:)](systemconfiguration/scnetworkreachabilitycreatewithaddresspair(_:_:_:).md)
- [SCNetworkReachabilityCreateWithName(_:_:)](systemconfiguration/scnetworkreachabilitycreatewithname(_:_:).md)

### Determining Reachability Status

- [SCNetworkReachabilityGetFlags(_:_:)](systemconfiguration/scnetworkreachabilitygetflags(_:_:).md)

### Preparing to Determine Reachability

- [SCNetworkReachabilityGetTypeID()](systemconfiguration/scnetworkreachabilitygettypeid().md)
- [SCNetworkReachabilitySetCallback(_:_:_:)](systemconfiguration/scnetworkreachabilitysetcallback(_:_:_:).md)
- [SCNetworkReachabilityScheduleWithRunLoop(_:_:_:)](systemconfiguration/scnetworkreachabilityschedulewithrunloop(_:_:_:).md)
- [SCNetworkReachabilityUnscheduleFromRunLoop(_:_:_:)](systemconfiguration/scnetworkreachabilityunschedulefromrunloop(_:_:_:).md)
- [SCNetworkReachabilitySetDispatchQueue(_:_:)](systemconfiguration/scnetworkreachabilitysetdispatchqueue(_:_:).md)

### Callbacks

- [SCNetworkReachabilityCallBack](systemconfiguration/scnetworkreachabilitycallback.md)

### Data Types

- [SCNetworkReachability](systemconfiguration/scnetworkreachability.md)
- [SCNetworkReachabilityContext](systemconfiguration/scnetworkreachabilitycontext.md)

### Constants

- [SCNetworkReachabilityFlags](systemconfiguration/scnetworkreachabilityflags.md)

## See Also

### Reference

- [SCDynamicStore](systemconfiguration/scdynamicstore-gb2.md)
- [SCDynamicStoreCopySpecific](systemconfiguration/scdynamicstorecopyspecific.md)
- [SCDynamicStoreKey](systemconfiguration/scdynamicstorekey.md)
- [SCNetwork](systemconfiguration/scnetwork.md)
- [SCNetworkConfiguration](systemconfiguration/scnetworkconfiguration.md)
- [SCNetworkConnection](systemconfiguration/scnetworkconnection-g7e.md)
- [SCPreferences](systemconfiguration/scpreferences-ft8.md)
- [SCPreferencesPath](systemconfiguration/scpreferencespath.md)
- [SCPreferencesSetSpecific](systemconfiguration/scpreferencessetspecific.md)
- [SCSchemaDefinitions](systemconfiguration/scschemadefinitions.md)
- [System Configuration](systemconfiguration/system-configuration.md)
- [SystemConfiguration Enumerations](systemconfiguration/systemconfiguration-enumerations.md)
- [SystemConfiguration Constants](systemconfiguration/systemconfiguration-constants.md)
- [SystemConfiguration Functions](systemconfiguration/systemconfiguration-functions.md)
- [SystemConfiguration Data Types](systemconfiguration/systemconfiguration-data-types.md)
