转自: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. java生成自己定义的表ID

    需生成例如以下ID: 56d7ade1-87d1-4f54-8dc8-13611c8c2545 27181ad4-4214-4e12-af3a-911a0103a12f 24cafdfb-eac3-4 ...

  2. linux系统编程:守护进程详解及创建,daemon()使用

    一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.它不需要用户输入就能运行而且提供某种服务,不是对整个 ...

  3. Linux下Oracle 10g DataGuard配置(主从同步及切换)

    环境描述:主库: IP: 10.8.3.191 主机名:primaryORACLE_SID=afcORACLE_BASE=/u01/oracleORACLE_HOME=/u01/oracle/10g备 ...

  4. 数据库迁移利器:Migrator.Net

    几年前在做项目中第一次接触到了Migrator.Net,就深深被吸引住了,至此以后在新的大项目中,我都会使用Migrator.Net来创建或者更新数据库架构.曾经在项目中也发现了小bug并提交给了作者 ...

  5. 操作系统概念学习笔记三 cpu调度算法

    一 基本概念 1 队列中的记录通常是进程的进程控制块. 2 CPU调度决策可在如下四种环境下发生 a 当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止 b 党一 ...

  6. STM32F103 GU906B模块GPRS、短信收发、拨号等功能的实现

    这个程序搞了我很久,尤其是对如何提高响应速度上,程序流程很简单,大概就是: 发送AT指令->等待模块响应->一旦响应了,立即返回,并处理掉. 这个程序不一定只能用在GU906上,程序框架在 ...

  7. 【Linux】Dockerfile,ubuntu默认shell不是bash?RUN source命令报错!

    Dash is not bash 在一些 docker 官方 Image 中,执行一些 .sh 文件的时候遇到了一些奇怪现象,比如: 1 2 3 # Run something like: [[ $A ...

  8. Intent的用法总结(不进你会后悔的)

    下面列出几种Intent的用法 下面的代码片段通过谷歌搜索 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARC ...

  9. SQLServer 之 Group By 和 Compute By

    创建测试表,如下: CREATE TABLE tableTest ( Id INT PRIMARY KEY, DepartMent ), Name ), Salary int ) 添加测试数据,如下图 ...

  10. Web中树形数据(层级关系数据)的实现—以行政区树为例

    在Web开发中常常遇到树形数据的操作,如菜单.组织机构.行政区(省.市.县)等具有层级关系的数据. 以下以行政区为例说明树形数据(层级关系数据)的存储以及实现,效果如图所看到的. 1 数据库表结构设计 ...