博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 6版本与之前版本差异总结
阅读量:6897 次
发布时间:2019-06-27

本文共 1637 字,大约阅读时间需要 5 分钟。

hot3.png

1、适配4英寸屏幕适配。

旧应用要与4英寸屏幕进行适配,需要创建一张Default-568h@2x.png图片,系统根据是否有此资源来识别是否支持4英寸屏幕。至于其他资源不允许使用xxx-568h.jpg此格式来适配屏幕,需要使用代码对屏幕进行检测来分别进行适配。

2、UINavigationViewController的变化

今天开发过程中发现的,该类的initWithRootViewController在之前的版本是最终会调用到init方法的。因此在继承UINavigationViewController时,直接在重写init方法来初始化对象所需属性即可。但是在iOS6上是不会调用init方法,因此需要开发者们注意。

3、CFRelease的变化

在之前版本中如果CFRelease传入nil是被允许的,这也符合我们传入nil对象不会对我们的程序造成影响,但是在iOS6中,这样的写法程序就直接把你的程序Crash掉了,所以代码中还是需要判断一下是否为nil才是安全的做法。

4、UIPickerView的变化

在之前版本中调用[_pickerView selectRow:-1 inComponent:0 animated:YES];是允许的。但在iOS6中会导致崩溃。

5、UIActivityIndicatorView的变化

在之前的版本中假如调用了startAnimating方法之后,只要把UIActivityIndicatorView添加到子视图中就会显示加载动画,但在iOS6中只要移出显示队列则会停止动画,特别在UITableViewCell中加入此控件,只要滚动几下Cell的UIActivityIndicatorView就消失了,为解决此问题可以在加入显示队列时根据isAnimating属性来判断是否执行动画,如果没有则重新调用一下startAnimating方法。

6、通讯录列表获取差异

自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表。而且ABAddressBookRef的初始化工作也由ABAddressBookCreate函数转变为ABAddressBookCreateWithOptions函数。下面代码是兼容之前版本的获取通讯录用户列表方法。

 

ABAddressBookRef addressBook = nil;	 if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0){    addressBook = ABAddressBookCreateWithOptions(NULL, NULL);	     //等待同意后向下执行    dispatch_semaphore_t sema = dispatch_semaphore_create(0);    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error)    {        dispatch_semaphore_signal(sema);    });              dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);    dispatch_release(sema);}else{    addressBook = ABAddressBookCreate();}	 NSArray *personArray = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

目前仅知道这些变化,往后再陆续补充完整。

 

转载于:https://my.oschina.net/vimfung/blog/79787

你可能感兴趣的文章
有赞透明多级缓存解决方案(TMC)设计思路
查看>>
堆和栈
查看>>
指针和字符串和字符串常量、用gdb来获取非法内存中的内容
查看>>
分析递归程序比较好的画图法
查看>>
图像形态学的几种基本操作 Image Morphology
查看>>
2015 杭州黑客马拉松赛后随笔
查看>>
青阳网络文件传输系统 kiftd 1.0.17 正式发布
查看>>
搞懂Mysql InnoDB B+树索引
查看>>
SpaceX完成载人猎鹰9火箭静态点火试验,将于2月实现载人升空 ...
查看>>
子查询中有个不存在的列居然不报错是bug吗?
查看>>
Swarm实战Docker容器集群,基于Linux环境部署Web集群例子
查看>>
再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署
查看>>
Flask内置命令行工具—CLI
查看>>
WPF异常捕获三种处理 UI线程, 全局异常,Task异常
查看>>
分布式之redis精讲
查看>>
Linux启动过程学习
查看>>
【linux+C】神器 vim + 指针相关客串
查看>>
华为 21 级程序员月薪曝光: 270k 封神! 众网友直呼长见识
查看>>
裸辞后,从Android转战Web前端的学习以及求职之路
查看>>
Makefile的常用技术总结
查看>>