判断网络是否连接实在需要购买道具的时候需要的一个动作,因为可能没有联网如果没有这个判断游戏会一直不响应,造成很差的交互性。
具体的逻辑自己可以添加上去 这里提供一个函数直接得到一个bool值,这样就可以进行各种操作和逻辑。
第一步 在。h文件里面添加
#import<sys/socket.h>
#import<netinet/in.h>
#import<arpa/inet.h>
#import<netdb.h>
#import<SystemConfiguration/SCNetworkReachability.h>
第二步在项目里面添加 SystemConfiguration.framework具体方法为:点击项目->build phases-> link binary with libraries -> +然后在弹出的选项里面找到 SystemConfiguration.framework点击确定添加。
第三步添加判断函数:
- (BOOL)isNetworkReachable{
// Create zero addy
struct sockaddr_in zeroAddress;
bzero(&zeroAddress,sizeof(zeroAddress));
zeroAddress.sin_len =sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
// Recover reachability flags
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags)
{
return NO;
}
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
return (isReachable && !needsConnection) ?YES :NO;
}
接下来你就可以用这个函数得到相应的判断并且应用这个判断了。