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. CentOS7下zip解压和unzip压缩文件

    1.安装zip.unzip应用. yum install zip unzip

  2. composer 一些使用说明

    1 使用订制的包 配置 "repositories": [ { "type": "path", "url": " ...

  3. 安装phpredisadmin linux nginx服务器下

    1.下载phpRedisAdmin:git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git 2.cd phpRedisAdmin   ...

  4. 搭建Hadoop2.6.4伪分布式

    准备工作 操作系统 CentOS 7 软件环境 JDK 1.7.0_79 下载地址 SSH,正常来说是系统自带的,若没有请自行搜索安装方法 关闭防火墙 systemctl stop firewalld ...

  5. glob模式

    在学习gulp的过程中,gulp使用了被称作为glob的文件匹配模式. 接下来我们认识下什么是glob模式. 在计算机编程中,特别是类Unix环境,glob模式通过通配符来匹配文件名.例如:Unix命 ...

  6. java异常处理的设计

    有一句这样话:一个衡量Java设计师水平和开发团队纪律性的好方法就是读读他们应用程序里的异常处理代码. 本文主要讨论开发Java程序时,如何设计异常处理的代码,如何时抛异常,捕获到了怎么处理,而不是讲 ...

  7. 1627. Join

    http://acm.timus.ru/problem.aspx?space=1&num=1627 给一个无向图,问可以有多少生成树 参照     周冬<生成树的计数及其应用> 代 ...

  8. CodeForces 474B E(Contest #1)

    题意: 给你一个数n,代表n段区间,接下来有n个数(a1,a2,...an)代表每段区间的长度,第一段区间为[1,a1],第二段区间为[a1+1,a1+a2],...第i段区间为[ai-1+1,ai- ...

  9. SQL数据库,使用事务执行增删改操作,给自己一个后悔的机会

    内容并不复杂,使用起来也比较简单. 主要使用以下3条SQL语句: 开始事物:BEGIN TRAN(全拼 TRANSACTION 亦可)提交事物:COMMIT TRAN回滚事务:ROLLBACK TRA ...

  10. VisualSVN5.0.1补丁原创发布

    VisualSVN5.0.1补丁原创发布