標籤:blog http color os io cti
目錄[-]
- 一、判斷裝置
- 二、判斷網路連接狀態
- 三、裝置不顯示的解決辦法
一、判斷裝置
02 |
return [UIDevice currentDevice].name; |
04 |
//裝置型號,只可得到是何裝置,無法得到是第幾代裝置 |
05 |
return [UIDevice currentDevice].model; |
08 |
return [UIDevice currentDevice].systemVersion; |
11 |
return [UIDevice currentDevice].systemName; |
02 |
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) |
05 |
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) |
08 |
#define IS_IPOD ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"]) |
11 |
#define IS_IPHONE_5_SCREEN [[UIScreen mainScreen] bounds].size.height >= 568.0f && [[UIScreen mainScreen] bounds].size.height < 1024.0f |
二、判斷網路連接狀態
1、匯入SystemConfiguration.framework,並#import<SystemConfiguration/SCNetworkReachability.h>
2、判斷裝置是否連網
01 |
+ (BOOL)connectedToNetwork{ |
03 |
//建立零地址,0.0.0.0的地址表示查詢原生網路連接狀態 |
05 |
struct sockaddr_storage zeroAddress; |
07 |
bzero(&zeroAddress, sizeof(zeroAddress)); |
08 |
zeroAddress.ss_len = sizeof(zeroAddress); |
09 |
zeroAddress.ss_family = AF_INET; |
11 |
// Recover reachability flags |
12 |
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress); |
13 |
SCNetworkReachabilityFlags flags; |
16 |
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags); |
17 |
CFRelease(defaultRouteReachability); |
19 |
//如果不能擷取串連標誌,則不能串連網路,直接返回 |
20 |
if (!didRetrieveFlags) |
26 |
BOOL isReachable = flags & kSCNetworkFlagsReachable; |
27 |
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired; |
28 |
return (isReachable&&!needsConnection) ? YES : NO; |
三、裝置不顯示的解決辦法
PS:如果裝置已經插上,但是XCode不顯示當前裝置,仍為iOS Device的狀態,如所示
解決步驟
1.點擊XCode右上方的Organizer->Devices,看自己的裝置是否為綠燈狀態,如果為黃燈或是沒有燈,說明裝置未串連好,請重新再插一次
2.如果裝置已經串連好,但是還是不顯示,則說明是系統版本不匹配,如果裝置是ios5的系統,則XCode的iOS Deployment Target 必須是5.0或以上,XCode才可分辨此裝置
選中TARGETS->Summary-Deployment Target 修改iOS版本號碼(假設設為6.1)
如果還是不識別,在PROJECT->Info->iOS Deployment Target下將版本號碼也修改為6.1