iOS的UIDevice,NSBundle,NSLocale
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
- //Getting the User’s Language
- NSArray *languageArray = [NSLocale preferredLanguages];
- NSString *language = [languageArray objectAtIndex:0];
- NSLog(@"语言:%@", language);//en
- NSLocale *locale = [NSLocale currentLocale];
- NSString *country = [locale localeIdentifier];
- NSLog(@"国家:%@", country); //en_US
iOS的UIDevice,NSBundle,NSLocale的更多相关文章
- iOS开发 获取手机信息(UIDevice,NSBundle,NSlocale)
在开发中,需要获取当前设备的一些信息,可以通过UIDevice,NSbundle,NSlocale获取. UIDevice UIDevice 提供了多种属性,类函数及状态通知,可以检测手机电量,定位, ...
- iOS学习之NSBundle介绍和使用
iOS学习之NSBundle介绍和使用 http://blog.csdn.net/totogo2010/article/details/7672271 新建一个Single View Applicat ...
- IOS设备 UIDevice 获取操作系统 版本 电量 临近手机触发消息检测 (真机亲测可用)
- (void)viewDidLoad { [super viewDidLoad]; // 操作系统 NSString * osName =[[UIDevice currentDevice]syste ...
- 【转】 iOS学习之NSBundle介绍和使用
bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle, cocoa提供了类NSBun ...
- ios开发处理服务器返回的时间字符串
#import <Foundation/Foundation.h> void other(); void string2date(); int main(int argc, const c ...
- ios专题 - 使用bundle文件管理资源
[原创]http://www.cnblogs.com/luoguoqiang1985 以前,自己写程序,图片等资源放得比较乱.后来,发现有个更好的方法来管理图片等资源文件 --bundle文件. 1) ...
- ios - 工具类
这几天看项目,把俺旁边小哥哥的一个工具类相中了,希望对大家有所帮助哦~~~~~~~~~ // // PLZ_Tool.h // // Created by penglaizhi on 2017/7/3 ...
- iOS 11适配和iPhone X的适配
这两天对自己负责的项目进行iOS 11和iPhone X的适配,网上的博客很多,也看了很多别人的记录博客,这里把自己遇到的问题记录下,当然有些不仅仅是iOS 11和iPhone X的适配,还包括自己遇 ...
- iOS开发系列-iOS适配
概述 发布iPhone X 系统版本为iOS11, 由于刘海屏原因需要对新的机型做适配. iPhone X safeArea iOS11苹果提出safeArea替代iOS7引入 topLayoutGu ...
随机推荐
- [教训] windows 电脑的垃圾文件清理...
坑你没商量! 这个名叫 “清除系统垃圾.bat“ 的文件在网上传播很广,但是,却出现了错误的版本,如果按照它逐条执行,将导致系统文件夹被一锅端,只能再重装的悲剧! 举个栗子: 错误版本:http:// ...
- 全面分析Java的垃圾回收机制
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间.Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new.newarray.anewarray和mult ...
- HDU 5010 Get the Nut(2014 ACM/ICPC Asia Regional Xi'an Online)
思路:广搜, 因为空格加上动物最多只有32个那么对这32个进行编号,就能可以用一个数字来表示状态了,因为只有 ‘P’ 'S' 'M' '.' 那么就可以用4进制刚好可以用64位表示. 接下去每次就 ...
- HTML 之 head
使用 base 标签使页面中的所有标签在新窗口中打开.<!DOCTYPE html> <html> <head> <meta http-equiv=" ...
- (BFS)aoj0558-Cheese
题目地址 根据题意,必须按从1吃到n的顺序.建立vi数组记录去没去过某一点,从起点向四周搜索,合法且未去过就入队列.每当找到符合此时应吃的位置,就将这个位置改为'.'并刷新vi数组,清空队列(因为必须 ...
- 个人纪录(初)----配置文件.properties的简单读取
本文为个人文本纪录. demo:::: 1.创建普通的java项目:这实例项目名字叫properties. 2.创建.properties文件:src目录下创建XX.properties文件,识别&q ...
- Android studio 项目的layout的文件打开,preview 视图无法显示,提示“no sdk found...”可能原因?
1.安装android studio后启动,引导新的下载的sdk文件夹,不要默认在c:\users\你的用户名\appdata...下的sdk文件夹. 2.如果已经默认的,重新在settings/pr ...
- 关闭SqlServer连接
经常使用需要还原数据库又不想关闭已经打开的画面,所以直接上 CREATE PROCEDURE [dbo].[StopLogin] ) AS DECLARE ), ) BEGIN IF (@Dname ...
- Scala编程--函数式对象
本章的重点在于定义函数式对象,也就是说,没有任何可变状态的对象的类.作为运行的例子,我们将创造若干把分数作为不可变对象建模的类的变体.在这过程中,我们会展示给你Scala面向对象编程的更多方面:类参数 ...
- druid.properties的配置
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://NoOne:3306/eyes<!--需修改--> username=root ...