转自:http://my.oschina.net/joanfen/blog/149076

一、判断设备

01 //设备名称
02 return [UIDevice currentDevice].name;
03  
04 //设备型号,只可得到是何设备,无法得到是第几代设备
05 return [UIDevice currentDevice].model;
06  
07 //系统版本型号,如iPhone OS
08 return [UIDevice currentDevice].systemVersion;
09  
10 //系统版本名称,如6.1.3
11 return [UIDevice currentDevice].systemName;
01 //判断是否为iPhone
02 #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
03  
04 //判断是否为iPad
05 #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
06  
07 //判断是否为ipod
08 #define IS_IPOD ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"])
09  
10 //判断是否为iPhone5
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{
02      
03     //创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
04      
05     struct sockaddr_storage zeroAddress;
06      
07     bzero(&zeroAddress, sizeof(zeroAddress));
08     zeroAddress.ss_len = sizeof(zeroAddress);
09     zeroAddress.ss_family = AF_INET;
10      
11     // Recover reachability flags
12     SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
13     SCNetworkReachabilityFlags flags;
14      
15     //获得连接的标志
16     BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
17     CFRelease(defaultRouteReachability);
18      
19     //如果不能获取连接标志,则不能连接网络,直接返回
20     if (!didRetrieveFlags)
21     {
22         return NO;
23     }
24     //根据获得的连接标志进行判断
25  
26     BOOL isReachable = flags & kSCNetworkFlagsReachable;
27     BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
28     return (isReachable&&!needsConnection) ? YES : NO;
29 }

三、设备不显示的解决办法

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

iOS代码技巧之判断设备及状态的更多相关文章

  1. iOS小技巧 - 为按钮设置不同状态下的背景色

    我们知道直接在Storyboard中设置按钮的背景色是不能根据不同状态来更改的,那问题来了,如果我们需要在不同的状态下(比如按钮没有被按下或者被按下),使得按钮呈现不同的背景色怎么办? 比如上图左边是 ...

  2. Android之判断设备网络连接状态,并判断连接方式

    在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线 ...

  3. IOS判断设备是否已越狱

    转自:http://www.cnblogs.com/supercheng/archive/2012/12/05/2804166.html - (BOOL)isJailbroken { BOOL jai ...

  4. c#判断网络连接状态示例代码

    使用c#判断网络连接状态的代码. 代码: public partial class Form1 : Form { [DllImport() == true) { label1.Text = " ...

  5. iOS开发网络篇—Reachability检测网络状态

    前言:当应用程序需要访问网络的时候,它首先应该检查设备的网络状态,确认设备的网络环境及连接情况,并针对这些情况提醒用户做出相应的处理.最好能监听设备的网络状态的改变,当设备网络状态连接.断开时,程序也 ...

  6. 如何把iOS代码编译为Android应用

    新闻 <iPhone 6/6 Plus中国销量曝光:单月销量650万>:据iSuppli Corp.中国研究总监王阳爆料,iPhone 6和iPhone 6 Plus在国内受欢迎的情况大大 ...

  7. 【转】几点 iOS 开发技巧

    [译] 几点 iOS 开发技巧 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高的 Mug ...

  8. Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址

    本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子  只要在不同的路由器上可以重复 外 ...

  9. 半年的iOS代码生活

    半年的iOS代码生活 在高考大军中拼杀过,也在大学校园中荒芜过,曾经低迷消沉,也常满怀壮志…… 但是最多的还是被称为小伙子以及自称为iOS工程师!博主就是这种喜闻乐见的这类人,实习一年后在2015年的 ...

随机推荐

  1. python接口自动化23-token参数关联登录(登录拉勾网)

    前言 登录网站的时候,经常会遇到传token参数,token关联并不难,难的是找出服务器第一次返回token的值所在的位置,取出来后就可以动态关联了 登录拉勾网 1.先找到登录首页https://pa ...

  2. lua string介绍

    1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...

  3. [翻译] UIView-draggable 可拖拽的UIView

    UIView-draggable 可拖拽的UIView https://github.com/andreamazz/UIView-draggable UIView category that adds ...

  4. SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析[转]

    本文将为您描述SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析,教程操作方法: 今天遇到一个很奇怪的情况,发现一个会话异常,这个会话只是在执行一个简单的存储过 ...

  5. .NET 代码注入 CodeInject

    CInject (or CodeInject) 允许直接往托管的代码中注入代码,而无需反编译.可在单个或者多个方法中注入你要执行的代码.使用 CInject 时你无需了解目标应用的细节,你通过注入来轻 ...

  6. html5.js 让所有IE支持HTML5

    摘自: http://hi.baidu.com/skway/item/33f38a9487356b4ff14215cf?qq-pf-to=pcqq.c2c html5.js 让所有IE支持HTML5 ...

  7. windows live writer首行缩进问题的解决

    使用live writer写博客的确方便,但有个简单的问题,我始终无法解决,就是发布的博客老是无法首行缩进,试过好多方法,都有问题: 直接加全角空格.上传时就给过滤掉了. 修改defaultcss,结 ...

  8. Oracle Spatial 创建空间表、添加空间原表信息、添加删除空间索引

    一.创建空间表 创建一个空间表tbsvrc_buffer_t ,SQL如下: create table tbsvrc_buffer_t(  ID      VARCHAR2(50) not null, ...

  9. Python网络爬虫 - 3. 异常处理

    handle_excpetion.py from urllib.request import urlopen from urllib.error import HTTPError from bs4 i ...

  10. vb.net Bitmap Drawing

    Public Class Form1 Dim BMP As New Drawing.Bitmap(640, 480) Dim GFX As Graphics = Graphics.FromImage( ...