开发iOS 6和iphone5版本与之前版本差异总结

标签: 开发 ios iphone5 | 发表时间:2012-11-21 00:07 | 作者:dean19900504
出处:http://blog.csdn.net

到目前为止也做了些对旧工程适配ios6和iphone5的工作,总结了一些东西:


1.开发iphone5和ios6版本最低需要使用xcode4.5,而xcode4.5不再支持armv6即:iOS4.3.3以下的系统.

不被支持的硬件设备包括:iPod 2nd gen, iPhone 3G 或更老的iPhone

例如我打包时的错误提示就是:

warning: iOS deployment targets lower than 4.3 are not supported (current 

IPHONEOS_DEPLOYMENT_TARGET = "4.0", ARCHS = "armv7").

(null):  iPhone/iPod Touch: application executable is missing a required 

architecture.  At least one 

of the following architecture(s) must be 

present: armv6 (-19033)




2.适配4英寸屏幕适配

旧应用要与4英寸屏幕进行适配,需要创建一张[email protected]图片,系统根据是否有此资源来识别是否

支持 4英寸屏幕。至于其他资源不允许使用xxx-568h.jpg此格式来适配屏幕,需要使用代码对屏幕进行检测来分别

进行适配。

一般用于判断iphone5的代码:

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,1136), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhone5_0 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(320,568), [[UIScreen mainScreen] currentMode].size) : NO)

为什么要写2个呢,这并不是没有作用的,如果代码写界面的话,在iPhone5下View的高是568,也就是判断的时候

用的宏是 第二个,最好是把这2个宏写在项目的XXX-Prefix.pch这个文件里面。


3.ios6转屏问题,控制视图的旋转

这个可以参考我博客里面写的一篇文章“ 旧工程适配ios6和iphone5 之 适配ios6转屏”;


4.UINavigationViewController的变化

在开发过程中发现的,该类的initWithRootViewController在之前的版本是最终会调用到init方法的。

因此在继承 UINavigationViewController时,直接在重写init方法来初始化对象所需属性即可。

但是在iOS6上是不会调用init方法, 因此需要开发者们注意。


5.CFRelease的变化

在之前版本中如果CFRelease传入nil是被允许的,这也符合我们传入nil对象不会对我们的程序造成影响,但是在iOS6中,

这样的写法程序就

直接把你的程序Crash掉了,所以代码中还是需要判断一下是否为nil才是安全的做法。


6.UIPickerView的变化

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

iOS6中会导致崩溃。


7.UIActivityIndicatorView的变化

在之前的版本中假如调用了startAnimating方法之后,只要把UIActivityIndicatorView添加到子视图中

就会显示 加载动画,但在iOS6只要 移出显示队列则会停止动画,特别在UITableViewCell中加入此控件,

只要滚动几下

Cell的

UIActivityIndicatorView就消失了,

为解决此问题可以在加入显示队列时根据

isAnimating属性来判断是否执行动画,

如果没有则重新调用一下startAnimating方法。

for (UIView *_curView in cell.subviews) {

      if ([_curView isKindOfClass:[UIActivityIndicatorView class]]) {
        [(UIActivityIndicatorView *)_curView startAnimating];
        break;
      }
    }



8、通讯录列表获取差异

这个可以参考我博客里面写的一篇文章“ iOS6.0下获取通讯录用户列表”;


9.由于ios6中,把viewDidUnLoad这个函数给撤销了,那么收到内存警告应该怎么办?

这个可以参考我博客里面写的一篇文章“ 官方ViewController programming guide 上面说的,

在iOS6以后要这样干: Really?”;


目前适配工作还没有做完,只知道这些变化,往后发现了新的差异再陆续补充完整。


作者:dean19900504 发表于2012-11-21 0:07:39 原文链接
阅读:109 评论:0 查看评论

相关 [开发 ios iphone5] 推荐:

开发iOS 6和iphone5版本与之前版本差异总结

- - CSDN博客推荐文章
到目前为止也做了些对旧工程适配ios6和iphone5的工作,总结了一些东西:. 1.开发iphone5和ios6版本最低需要使用xcode4.5,而xcode4.5不再支持armv6即:iOS4.3.3以下的系统.. 不被支持的硬件设备包括:iPod 2nd gen, iPhone 3G 或更老的iPhone.

iOS开发资源

- - Starming星光社最新更新
iOS App UI 欣赏、分享精美的App界面设计. iOS代码实例搜索、iOS特效示例、iOS代码例子下载. 以web的形式提供iOS UI设计的素材,你可以在web上拖动一些控件做出简单的ios 应用效果,并且生成一个URL,能分享给其他人. 一款 Photoshop 插件,由 UI Parade 推出的一款针对iOS UI 的设计工具,设计师动动鼠标即可制作精美的 iOS 应用原型.

iOS MDM开发流程

- - CSDN博客移动开发推荐文章
一年前曾参与过中石油的一个移动平台项目,实现了通过MDM对iOS设备进行管理. 由于苹果对于mdm这块的接口及开发流程只向几个合作伙伴进行了分享,并没有对具体实现的文档进行公开,所以这方面的资料非常少. 现在把实现的过程分享给大家,希望能对大家有所帮助. MDM的全称是Mobile Device Management,是企业IT 向移动互联网过渡的平台技术,帮助企业将IT管理能力从传统的 PC 延伸到移动设备甚至 移动应用APP.

iOS App开发那些事

- - IT江湖
自从做Team Leader之后,身上权责发生了变化,于是让我烦恼的不再是具体某个功能,某个界面的实现,而是如何在现有代码的基础上做渐进式的改进,创造出比较合适规范和框架,使得组内成员更快更好地完成任务. 一年下来,颇有点想法,于是啰嗦几句关于iOS App开发的那些事. 首先明确一点,合适的人是指纯技术团队的建设.

iOS 开发笔记-andriod/java/iOS三方AES通用加密 - jiangys

- - 博客园_首页
AES在线加解密验证工具:  http://www.seacha.com/tools/aes.html. AES加密有多种算法模式,下面提供两套模式的可用源码. 将数据进行Base64解码. 一、CBC(Cipher Block Chaining,加密块链)模式. 是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度..

iPhone5 虚拟镭射键盘

- 林十四 - 先看看|创意产品,创意设计,创意生活
旧金山团队Aatma Studio在iPhone5上塑造了一个很酷的概念,使得这台手机拥有可收放自如. 的虚拟镭射键盘,它投影在桌面上,可自由旋转,缩放,调节亮度,操作完毕后直接将其“丢”. 先看看|创意产品,创意设计,创意生活 |逛逛我们的创意网店.

iPhone5 趣味想象图

- renjin - 爱范儿 · Beats of Bits
iPhone 似乎无所不能,无论你有什么需要,“There is an app for that”,据说苹果已经把这句口号申请了专利,可见其对自己的产品信心十足. 苹果的新产品总是革命性的,相信以后的 iPhone 5 也不例外. 但是,漫画家 Dan Piraro 的这幅想象图对苹果公司和应用开发者是个不小的挑战, 因为这功能太强悍了.

从互动广告到iOS开发

- - Kevin Cao's Blog
一年以前,我还在做各种Flash网站,而现在却是拥有一间小 工作室的iOS独立开发者. 从互动广告行业转型到移动互联网,也许也是正在阅读本文的你心中的一点小念头. 即便你仍然打算奋斗在互动广告行业,对移动互联网带来的冲击也不可能置身事外. 移动互联网,正在真真切切的改变我们每一个人的生活,对你我正在从事的事业,都不能例外.

困难重重的iOS开发现状

- - CocoaChina移动观察
文/ Chris Buffa ( gamesindustry). 2012年2月将会因为“林来疯(Linsanity)”的出现而被历史永远铭记. 虽然之前一直面临被球队裁掉的窘境,但NBA纽约尼克斯队的得分后卫林书豪在今年2月4日对阵新泽西网队的一场比赛中全面爆发,随后带领球队取得了一连串的胜利,如今,林书豪已经成为全世界家喻户晓的篮球明星.

IOS上objective-c开发调试方法

- - 瞄的技术
常用总结,陆续补充,免得忘记. 1.如果问题是可以复现的,用Breakpoint可以跟踪出错位置在进行分析. 2.如果使用Breakpoint无法查出crash问题,问题无法复现,可以用profile记录运行过程中的内存,cpu使用,看是否在某一功能突然升高,不稳定. 3.可以通过将所有的NSLOG控制台输出截获到文件输出,在真机上运行来排查在模拟器上无法复现的问题.