iOS开发——设备信息小结(未完待续...)

  1.获取设备的信息

  UIDevice *device = [[UIDevice alloc] init];

NSString *name = device.name;       //获取设备所有者的名称

NSString *model = device.name;      //获取设备的类别

NSString *type = device.localizedModel; //获取本地化版本

NSString *systemName = device.systemName;   //获取当前运行的系统

NSString *systemVersion = device.systemVersion;//获取当前系统的版本

NSLog(@"name:%@\nmodel:%@\ntype:%@\nsystemName:%@\nsystemVersion:%@\n",name,model,type,systemName,systemVersion);

  2.获取设备的唯一标示符

  NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

NSLog(@"identifier:%@",identifier);

  3.创建一个uuid(一个随机的标示符)

  NSString *uuid = [self createUUID];

NSLog(@"uuid:%@",uuid);

- (NSString*)createUUID {

NSString *id = [[NSUserDefaults standardUserDefaults] objectForKey:@"UUID"];    //获取标识为"UUID"的值

if(id == nil)

{

if([[[UIDevice currentDevice] systemVersion] floatValue] > 6.0)

{

//ios 6.0 之后可以使用的api

NSString *identifierNumber = [[NSUUID UUID] UUIDString];

[[NSUserDefaults standardUserDefaults] setObject:identifierNumber forKey:@"UUID"];

[[NSUserDefaults standardUserDefaults] synchronize];

}

else{

//ios6.0之前使用的api

CFUUIDRef uuid = CFUUIDCreate(NULL);

CFStringRef uuidString = CFUUIDCreateString(NULL, uuid);

NSString *identifierNumber = [NSString stringWithFormat:@"%@", uuidString];

[[NSUserDefaults standardUserDefaults] setObject:identifierNumber forKey:@"UUID"];

[[NSUserDefaults standardUserDefaults] synchronize];

CFRelease(uuidString);

CFRelease(uuid);

}

return [[NSUserDefaults standardUserDefaults] objectForKey:@"UUID"];

}

return id;

}

时间: 2024-10-15 20:14:38

iOS开发——设备信息小结(未完待续...)的相关文章

shoi2017小结(未完待续)

某省选 胡雨菲让我做的,她自己已经AK了... 在loj(自由oj?)上面搜索shoi2017即可. 第一题:大水题枚举 看题目就很水:(其实是因为胡雨菲给我讲了做法),我们分析可知:烦躁度只与最晚的出成绩日期有关.然后我们枚举出成绩日期,得出一个烦躁度.取min即可.注意C==10^16时,我们判断得出把10^5个课程向前挪10^5次,每次产生10^5烦躁度,也才10^15,故只需输出solve(a[1])即可.随便搞两个前缀和,然后这题就A了. 第二题:SB线段树 看得出来,明显是个线段树,

iOS开发系统版本适配(未完待续。。。)

1.iOS9引入了新特性App Transport Security (ATS).新特性要求App内访问的网络必须使用HTTPS协议:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2.简单的说,就是苹果限制了HTTP协议,如果你用的是http协议的,要处理请参考我的另一文章,iOS9网络适配 2.iOS9

慕课网-安卓工程师初养成-1-2 开发环境搭建 未完待续

http://www.imooc.com/video/1459 Java开发环境搭建 第一步:安装JDK 下载: http://www.oracle.com/technetwork/java/javase/downloads/ 针对不同的系统有不同文件,32bit和64bit也有不同文件 未完待续

Dancing Links 小结 (因为之前丢了一次稿,未完待续)

Dancing Links (DLX)是Knuth为了解决精确覆盖问题而提出的算法,很多搜索问题可以转化位精确覆盖问题从而使用Dancing Links解决(效率会比DFS高很多,因为里面常常蕴涵着意想不到的剪枝) 信息学竞赛中的DLX的问题类似网络流,只需建图+贴版即可 参考文献: 1.DLX的原理:Knuth的论文: 原版:http://arxiv.org/abs/cs/0011047 翻译版:http://wenku.baidu.com/view/d8f13dc45fbfc77da269b

jdbc14 及 jdbc16 共存所带来的问题【未完待续】

在JAVA中JDK版本与JDBC版本的一致性十分重要,开发都们常常会忽略了这一点导致很多不必要的错误.昨天给客户排查了一个关于EDB在JBoss中使用时关于这方面的问题,希望给大家一点启发. 系统环境: Red Hat Enterpirse Linux 6 JBoss Enterprise Application Server 6 EnterpriseDB Postgres Plus Advanced Server 9 Oracle JDK 1.6 问题症状: 在JBoss日志中间歇性地出现以下

Linux 命令个人总结====== 未完待续 个人认为比较重要

Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789] 命令.文件. [选项参数]: 数字"1"表示用户命令,比如"ls" 数字"2"表示系统调用 数字"3"表示C语言库函数 数字"4"表示设备或特殊文件 数字"5"表示文件格式和规则 数字"6"表示游戏及其他 数字"7"表示

[译]App Framework 2.1 (1)之 Quickstart (未完待续)

最近有移动App项目,选择了 Hybrid 的框架Cordova  和  App Framework 框架开发. 本来应该从配置循序渐进开始写的,但由于上班时间太忙,这段时间抽不出空来,只能根据心情和兴趣,想到哪写到哪,前面的部分以后慢慢补上. App Framework 前生是是叫 jqMobi 注意大家不要和 jQuery Mobile 混淆了,它们是两个不同的框架,一开始我还真混淆了0.01秒. 这里我先翻译一下Quickstart 部分,一是自己工作上用的上,二是也想顺便练练英文,最关键

git个人使用总结 —— idea命令行、撤销commit (未完待续)

近期在使用git,最开始在idea界面操作,后来要求用命令行.刚开始还不是很习惯,感觉很麻烦,用了几天后感觉爽极了! 其实git的命令也不是很多,熟悉一段时间就差不多能顺利使用了.使用过程中遇到了各种各样的问题,有些小问题就在这里集中总结一下. 1.idea命令行.git安装后就自带终端git bash,使用起来很方便.但是用idea开发,开发后还要在相应文件夹下打开git bash很麻烦.其实idea也带有终端terminal,在最下方可以找到,在这里就可以执行命令.但是如果是默认方式安装的g

React v16-alpha 源码简读【未完待续】

一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm install $gulp default (建议使用node 6.0+) gulp将文件处理在根目录下的build文件夹中,打开build查看react的源码,结构清晰,引用路径明了 二.从生成 virtual dom 开始 react 生成一个组件有多种写法: es 5下:var Cp=React.