IOS中多版本,多设备类型支持注意事项

  • 时间:
  • 浏览:2
  • 来源:UU快3登录平台

  4) 判断十个 extern 变量可是 Notification名是是不是可用

  注:转载请注明出处!欢迎亲戚亲戚他们 加我QQ 1592232964,一起讨论一起进步。  

  到这儿就设置完了,Xcode会根据亲戚亲戚他们 的设置进行编译打包。在这里亲戚亲戚他们 讨论一下Xcode是怎么使用了最新版本的SDK,却都要支持到较老的系统版本呢?查阅文档SDK Compatibility Guide发现,在系统进程运行打包的可是 ,Xcode可是 将统统导出符号打到亲戚亲戚他们 的系统进程运行包中,具体到运行日后 根据实际的设备的系统版本进行匹配。文档所含十个 图都要解释Base SDK和Deployment Target之间是怎么运作的,如下图:

  不同的设备CPU指令集可是 是不同的,这也就意味着着了其支持的框架可是 不同。这俩 苹果65手机机3G及可是 版本的设备的CPU只支持armv6的指令集,意味着着了那此设备只支持OpenGL ES 1.1版本,所有iPad及苹果65手机机3GS可是 的所有设备都采用armv7及armv7s(苹果65手机机5,iPad4采用)指令集,可是 既都要支持OpenGL ES 1.1和2.0。

一、支持多设备类型

  2) 判断十个 最好的办法是是不是可用

  怎么设置呢?

  在IOS 4.2可是 亲戚亲戚他们 都要通过class统统类最好的办法来判断十个 类在当前运行时是是不是可用,代码如下:

  参考文档: SDK Compatibility Guide

  3) 判断十个 函数是是不是可用

  Xcode新建的工程中通常日后 采用最用的SDK以及支持到最新的版本。可是 亲戚亲戚他们 要既支持新的版本,同事兼顾的老的版本,为了也能利用上新版本中新的社会形态,统统最好选泽最新的SDK,统统项通常不不改,维持原样就好。可是 要支持叫早的系统版本,则都要修改Deployment Target选项。如下图所示,亲戚亲戚他们 设置项目都要最老的版本为IOS 4.3。

  下面亲戚亲戚他们 分别从十个 方面讨论一下:

  至此,多版本多设备类型支持注意事项就介绍完了,希望对亲戚亲戚他们 能有帮助。

  无论是在新的系统版本中调用可是 不支持了的API,还是在旧的系统版本中调用新的系统版本中才引入的API日后 意味着着亲戚亲戚他们 的系统进程运行Crush。可是 亲戚亲戚他们 在调用那此亲戚亲戚他们 部署的版本可是 加上的API可是 Framework时都要进行判断当前系统进程运行所运行的环境是是不是支持。

  extern变量和Notification名我我觉得全部日后 十个 变量,亲戚亲戚他们 只都要判断它的地址是是不是NULL即可,代码如下:

  1) 判断十个 类是是不是可用

  在系统版本升级的过程中,通常会加上统统新的API和Framework,也会废弃掉统统旧的速率不高的API。那此废弃的API我我觉得非要立马变得不可用,可是 不保证在上边的版本中会继续支持,统统为了亲戚亲戚他们 的系统进程运行也能在新的系统中更可靠,高效的运行,亲戚亲戚他们 应该尽量使用新的API。

  在Mac OS则都要使用NSClassFromString来判断十个 类是是不是可用。

IOS中多版本,多设备类型支持注意事项

  每次系统升级的可是 ,总有统统用户会可是 各种意味着着不愿可是 非要升级到最新的系统。这就意味着着,可是 亲戚亲戚他们 的系统进程运行要让尽可是 多的人使用,就得支持尽可是 多的硬件架构及系统版本。可是 亲戚亲戚他们 写的系统进程运行和硬件打交道比较少语录,要做的事也可是 配置一下工程选项中的Architectures,在其中加上上亲戚亲戚他们 要支持的硬件架构就好了。然而每次系统的升级日后 伴随这统统新的API,Framework的引入,以及次责老的API的废弃。也可是 亲戚亲戚他们 要支持的系统版本不要 ,工作量也就越大,统统亲戚亲戚他们 通常会根据工作量和系统版本的分布情况汇报做出选泽。现在AppStore上基本上的系统进程运行一般最多也就支持IOS 4.3的系统了吧,我做的上个项目PowerCam记得也是从4.0版本结束了了英语 英语 支持。

  下面亲戚亲戚他们 从十几条 方面讨论:

  亲戚亲戚他们 知道C语言中每个函数名都代表着统统函数的地址,可是 亲戚亲戚他们 都要通过判断该函数名字是是不是NULL来判断支持该函数。

  Xcode工程的targets的buildSetting所含一项Architectures,通过统统项亲戚亲戚他们 设置工程所支持的设备类型。现在最新的Xcode版本4.5在新建工程的可是 ,默认值是“Standard(armv7,armv7s) ”,即支持苹果65手机机3GS可是 的所有设备。可是 你写的系统进程运行都要支持苹果65手机机3G语录,则都要编辑该选项,点击该选项选泽others即可编辑,加上上armv6即可。如下图所示:

  Xcode在工程的编译选项中,亲戚亲戚他们 都要看多十个 选项:Base SDK和Deployment Target,第十个 选项是用来设置亲戚亲戚他们 项目是基于哪个版本的SDK开发,第二选项是用来设置亲戚亲戚他们 的项目最低都要部署到哪十个 系统运行。

  IOS系统从07年出来,到现在全部日后 6年了,每年发布一次到两次新的设备,从苹果65手机机1,苹果65手机机2 ... 苹果65手机机4s再到最新的苹果65手机机5。硬件在升级的过程中CPU的架构也可是 存在变化,如最早的armv6,armv7再带最新的苹果65手机机5统统用的armv7s。一起伴随每一次硬件升级,系统日后 做一次大版本的升级,目前最新的版本可是 到了6.x了。

  该文档中还讲到可是 你想针对不同的SDK版本进行条件编译,都要采用宏来实现,感兴趣的同学都要买车人看看。

  该图是以Mac OS工程为例的,不过原理是一样的。意思是对于亲戚亲戚他们 支持部署的版本可是 的所有API,亲戚亲戚他们 全部日后 都要无条件使用的(当前在新的版本中最好使用新的API),在亲戚亲戚他们 支持部署的版本和亲戚亲戚他们 开发所基于的SDK版本之间的API,都要使用取决于亲戚亲戚他们 的APP具体运行的系统版本。

二、支持多系统版本

  NSObject类有十个 最好的办法instancesRespondToSelector都要用来判断十个 类的实例是是不是响应指定的最好的办法,可是 要判断十个 类是是不是响应十个 类最好的办法则都要使用respondToSeletor最好的办法。代码如下: