2019独角兽企业重金招聘Python工程师标准>>>

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

UIDevice

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

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

NSBundle

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

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

NSLocale

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

*  http://blog.csdn.net/xyz_lmn
*  iOS入门群:83702688
*  android开发进阶群:241395671
*  我的新浪微博:@张兴业TBOW
*/
参考:
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSLocale_Class/Reference/Reference.html
http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-accessing-device-data-with-uidevice-and-nslocale/

转载于:https://my.oschina.net/201003674/blog/289010

iOS学习笔记(十三)——获取手机信息(UIDevice、NSBundle、NSLocale)相关推荐

  1. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  2. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  3. iOS学习笔记-自己动手写RESideMenu

    代码地址如下: http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars ...

  4. iOS学习笔记-地图MapKit入门

    代码地址如下: http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错 ...

  5. iOS学习笔记-自定义过渡动画

    代码地址如下: http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swi ...

  6. iOS学习笔记22 推送通知

    ###一.推送通知 推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等. ######推送通知的常用应用场景: ...

  7. Polyworks脚本开发学习笔记(十三)-深入了解MACRO命令

    Polyworks脚本开发学习笔记(十三)-深入了解MACRO命令 MACRO命令中包含了很多宏脚本管理以及变量操作命令,交互操作命令等,是非常重要的一个模块. 数组和字符串操作 从数组中拿掉一个元素 ...

  8. OpenCV for Ios 学习笔记(4)-标记检测1

    本文原始地址:OpenCV for Ios 学习笔记(4)-标记检测1 简单的标记经常是以白色块和黑色块构成的规则图形.因为我们预先知道这些因素,所以我们可以很容易检测标记. 如图: 首先,我们需要找 ...

  9. Polyworks脚本开发学习笔记(十四)-WORKSPACE信息读取及管理

    Polyworks脚本开发学习笔记(十四)-WORKSPACE信息读取及管理 Polyworks的工作任务存储分为工作区和项目两级,通过WORKSPACE命令获取工作任务信息,实现更好的任务管理. 下 ...

  10. OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7919 ...

最新文章

  1. VS编译时output/Error list窗口自动弹出设置
  2. java怎么表示10 2_java -Xmx1G是否表示10 ^ 9或2 ^ 30字节?
  3. 编程方法学23:搜索排序与算法效率分析
  4. SCOM数据库整理索引计划出错
  5. 在一个list中增加一个节点
  6. 数据结构-图及其遍历
  7. 招聘| 基因组所Yuwen Liu团队诚聘科研人员
  8. 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
  9. 计算机学硕英语考什么意思,计算机考研都考什么?
  10. Web安全通讯之Token与JWT
  11. 基于51单片机的红外接收
  12. cvtColor()实际操作
  13. 我家遥控器载波波形研究
  14. android 读取本地超大图片
  15. 采购需要进步,采购一定要知道的事
  16. dubbo的版本升级和-Xss的错误设置导致项目启动失败
  17. Deeplung代码复现(一)
  18. 好的网站好的论坛社区
  19. 巧用Netstat排除网络故障
  20. HTML实训实训心得

热门文章

  1. 性能优化工具 MVC Mini Profiler
  2. 邮件安全隐患及其防范技术研究
  3. Winform与Webform中的对话框
  4. Java组合实体模式
  5. iOS 跑马灯封装(带点击事件)
  6. TCC分布式事务的实现原理
  7. 分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)
  8. centos7中nfs文件系统的使用
  9. 安装Oracle11g先决条件检查失败
  10. Vmware linux 无法上网