iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用 户设备、系统信息、应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的。那么通过那些api可以 获取这些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale。

UIDevice

UIDevice提供了多种属性、类函数及状态通知,帮助我们全方位了解设备状况。从检测电池电量到定位设备与临近感应,UIDevice所做的工作就
是为应用程序提供用户及设备的一些信息。UIDevice类还能够收集关于设备的各种具体细节,例如机型及iOS版本等。其中大部分属性都对开发工作具有
积极的辅助作用。下面的代码简单的使用UIDevice获取手机属性。

  1. //设备相关信息的获取
  2. NSString *strName = [[UIDevice currentDevice] name];
  3. NSLog(@"设备名称:%@", strName);//e.g. "My iPhone"
  4. NSString *strId = [[UIDevice currentDevice] uniqueIdentifier];
  5. NSLog(@"设备唯一标识:%@", strId);//UUID,5.0后不可用
  6. NSString *strSysName = [[UIDevice currentDevice] systemName];
  7. NSLog(@"系统名称:%@", strSysName);// e.g. @"iOS"
  8. NSString *strSysVersion = [[UIDevice currentDevice] systemVersion];
  9. NSLog(@"系统版本号:%@", strSysVersion);// e.g. @"4.0"
  10. NSString *strModel = [[UIDevice currentDevice] model];
  11. NSLog(@"设备模式:%@", strModel);// e.g. @"iPhone", @"iPod touch"
  12. NSString *strLocModel = [[UIDevice currentDevice] localizedModel];
  13. NSLog(@"本地设备模式:%@", strLocModel);// localized version of model

NSBundle

bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle。通过这个路径可以获取到应用的信息,例如应用名、版本号等。

  1. //app应用相关信息的获取
  2. NSDictionary *dicInfo = [[NSBundle mainBundle] infoDictionary];
  3. //    CFShow(dicInfo);
  4. NSString *strAppName = [dicInfo objectForKey:@"CFBundleDisplayName"];
  5. NSLog(@"App应用名称:%@", strAppName);
  6. NSString *strAppVersion = [dicInfo objectForKey:@"CFBundleShortVersionString"];
  7. NSLog(@"App应用版本:%@", strAppVersion);
  8. NSString *strAppBuild = [dicInfo objectForKey:@"CFBundleVersion"];
  9. NSLog(@"App应用Build版本:%@", strAppBuild);

NSLocale

     NSLocale可以获取用户的本地化信息设置,例如货币类型,国家,语言,数字,日期格式的格式化,提供正确的地理位置显示等等。下面的代码获取机器当前语言和国家代码。
 
    1. //Getting the User’s Language
    2. NSArray *languageArray = [NSLocale preferredLanguages];
    3. NSString *language = [languageArray objectAtIndex:0];
    4. NSLog(@"语言:%@", language);//en
    5. NSLocale *locale = [NSLocale currentLocale];
    6. NSString *country = [locale localeIdentifier];
    7. NSLog(@"国家:%@", country); //en_US

iOS的UIDevice,NSBundle,NSLocale的更多相关文章

  1. iOS开发 获取手机信息(UIDevice,NSBundle,NSlocale)

    在开发中,需要获取当前设备的一些信息,可以通过UIDevice,NSbundle,NSlocale获取. UIDevice UIDevice 提供了多种属性,类函数及状态通知,可以检测手机电量,定位, ...

  2. iOS学习之NSBundle介绍和使用

    iOS学习之NSBundle介绍和使用 http://blog.csdn.net/totogo2010/article/details/7672271 新建一个Single View Applicat ...

  3. IOS设备 UIDevice 获取操作系统 版本 电量 临近手机触发消息检测 (真机亲测可用)

    - (void)viewDidLoad { [super viewDidLoad]; // 操作系统 NSString * osName =[[UIDevice currentDevice]syste ...

  4. 【转】 iOS学习之NSBundle介绍和使用

    bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle, cocoa提供了类NSBun ...

  5. ios开发处理服务器返回的时间字符串

    #import <Foundation/Foundation.h> void other(); void string2date(); int main(int argc, const c ...

  6. ios专题 - 使用bundle文件管理资源

    [原创]http://www.cnblogs.com/luoguoqiang1985 以前,自己写程序,图片等资源放得比较乱.后来,发现有个更好的方法来管理图片等资源文件 --bundle文件. 1) ...

  7. ios - 工具类

    这几天看项目,把俺旁边小哥哥的一个工具类相中了,希望对大家有所帮助哦~~~~~~~~~ // // PLZ_Tool.h // // Created by penglaizhi on 2017/7/3 ...

  8. iOS 11适配和iPhone X的适配

    这两天对自己负责的项目进行iOS 11和iPhone X的适配,网上的博客很多,也看了很多别人的记录博客,这里把自己遇到的问题记录下,当然有些不仅仅是iOS 11和iPhone X的适配,还包括自己遇 ...

  9. iOS开发系列-iOS适配

    概述 发布iPhone X 系统版本为iOS11, 由于刘海屏原因需要对新的机型做适配. iPhone X safeArea iOS11苹果提出safeArea替代iOS7引入 topLayoutGu ...

随机推荐

  1. 错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle

    出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜 ...

  2. Android App的签名打包三步骤

    1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本 ...

  3. qt越来越好了

    qml中所有的商业控件都开源了,详见: import QtQuick.Extras 1.4 以前自己实现的时候实现了半天.

  4. PHPCMS后台登陆路径修改方法(V9版)

    转自:http://hi.baidu.com/geek_cheng/item/b903ebe7b4ac3af9e0a5d4aa?qq-pf-to=pcqq.c2c 最新发布的PHPCMS V9由于采用 ...

  5. JavaScript拼图游戏

    今天是2016年最后一天上班了.最近几天都比较休闲,有时间空闲下来写写文档之类的. 2016过得真是快.感觉没做什么就过去了.想到之前想坚持每个月写一写博客都没坚持到.希望2017年可以吧. 无聊之余 ...

  6. SpringMVC RequestMapping & 请求参数

    SpringMVC 概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC ...

  7. Android studio打开之后 cannot load project: java.lang.NUllpointerException

    参考来源:http://bbs.csdn.net/topics/391014393 关闭网络,重新打开Android studio就好了.(但是原因不清楚是为什么?) Internal error.  ...

  8. OC NSString 基本操作(用到补充持续更新)

    1.将字符串拆分成数组 NSString *string = @"1,2,3,4"; NSArray *array = [string componentsSeparatedByS ...

  9. jdbc基本查询方法

    jdbc操作数据库时,最基本的三种接口是Statement PreparedStatment  CallableStatement (1)Statement createStatement() cre ...

  10. 解决eclipse中自带的maven搜索不到非本地第三方包问题

     解决eclipse中自带的maven搜索不到非本地第三方包问题   版权声明:本文为博主原创文章,未经博主允许不得转载. 最近使用eclipse中的maven插件时发现,在pom.xml文件中添加第 ...