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

  • 时间:
  • 浏览:0
  • 来源:UU直播快三官方_大发UU直播快3

  在系统版本升级的过程中,通常会去掉 不要 不要 新的API和Framework,也会废弃掉不要 不要 旧的下行数率 不高的API。哪此废弃的API觉得非要立马变得不可用,刚刚不保证在顶端的版本中会继续支持,不要 不要 为了让我们让我们让我们 的任务管理器里能在新的系统中更可靠,高效的运行,让我们让我们让我们 应该尽量使用新的API。

  让我们让我们让我们 知道C语言中每个函数名都代表着这俩 函数的地址,刚刚让我们让我们让我们 都还要通过判断该函数名字与非 NULL来判断支持该函数。

  注:转载请注明出处!欢迎让我们让我们让我们 加我QQ 1592232964,同时讨论同时进步。  

二、支持多系统版本

  在IOS 4.2前一天让我们让我们让我们 都还要通过class这俩 类最好的方式来判断哪几个类在当前运行时与非 可用,代码如下:

  每次系统升级的前一天,总有不要 不要 用户会可能性各种因为不愿可能性非要升级到最新的系统。这就因为,可能性让我们让我们让我们 的任务管理器要让尽可能性多的人使用,就得支持尽可能性多的硬件架构及系统版本。可能性让我们让我们让我们 写的任务管理器和硬件打交道比较少一段话,要做的事也刚刚配置一下工程选项中的Architectures,在其中添去掉 让我们让我们让我们 要支持的硬件架构就好了。然而每次系统的升级都有伴随这不要 不要 新的API,Framework的引入,以及主次老的API的废弃。也刚刚让我们让我们让我们 要支持的系统版本不要 ,工作量也就越大,不要 不要 让我们让我们让我们 通常会根据工作量和系统版本的分布情况表做出挑选。现在AppStore上基本上的任务管理器一般最多也就支持IOS 4.3的系统了吧,我做的上个项目PowerCam记得也是从4.0版本现在现在开始支持。

  到这儿就设置完了,Xcode会根据让我们让我们让我们 的设置进行编译打包。在这里让我们让我们让我们 讨论一下Xcode是怎么才能 才能 使用了最新版本的SDK,却都还要支持到较老的系统版本呢?查阅文档SDK Compatibility Guide发现,在任务管理器打包的前一天,Xcode刚刚将不要 不要 导出符号打到让我们让我们让我们 的任务管理器包中,具体到运行都有根据实际的设备的系统版本进行匹配。文档中含哪几个图都还要解释Base SDK和Deployment Target之间是怎么才能 才能 运作的,如下图:

一、支持多设备类型

  参考文档: SDK Compatibility Guide

  2) 判断哪几个最好的方式与非 可用

  在Mac OS则还要使用NSClassFromString来判断哪几个类与非 可用。

  Xcode新建的工程中通常都有采用最用的SDK以及支持到最新的版本。可能性让我们让我们让我们 要既支持新的版本,同事兼顾的老的版本,为了里能利用上新版本中新的型态,不要 不要 最好挑选最新的SDK,这俩 项通常里能 改,维持原样就好。可能性要支持叫早的系统版本,则还要修改Deployment Target选项。如下图所示,让我们让我们让我们 设置项目还要最老的版本为IOS 4.3。

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

  IOS系统从07年出来,到现在都有6年了,每年发布一次到两次新的设备,从苹果手机4 手机1,苹果手机4 手机2 ... 苹果手机4 手机s再到最新的苹果手机4 手机。硬件在升级的过程中CPU的架构也可能性处于变化,如最早的armv6,armv7再带最新的苹果手机4 手机不要 不要 用的armv7s。同时伴随每一次硬件升级,系统都有做一次大版本的升级,目前最新的版本可能性到了6.x了。

  4) 判断哪几个extern 变量可能性Notification名与非 可用

  Xcode工程的targets的buildSetting中含一项Architectures,通过这俩 项让我们让我们让我们 设置工程所支持的设备类型。现在最新的Xcode版本4.5在新建工程的前一天,默认值是“Standard(armv7,armv7s) ”,即支持苹果手机4 手机3GS前一天的所有设备。可能性你写的任务管理器还要支持苹果手机4 手机3G一段话,则还要编辑该选项,点击该选项挑选others即可编辑,添去掉 armv6即可。如下图所示:

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

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

  不同的设备CPU指令集可能性是不同的,这也就因为了其支持的框架可能性不同。累似 苹果手机4 手机3G及前一天版本的设备的CPU只支持armv6的指令集,因为了哪此设备只支持OpenGL ES 1.1版本,所有iPad及苹果手机4 手机3GS前一天的所有设备都采用armv7及armv7s(苹果手机4 手机,iPad4采用)指令集,刚刚既都还要支持OpenGL ES 1.1和2.0。

  3) 判断哪几个函数与非 可用

  extern变量和Notification名觉得都有哪几个变量,让我们让我们让我们 只还要判断它的地址与非 NULL即可,代码如下:

  下面让我们让我们让我们 从哪几个方面讨论:

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

  1) 判断哪几个类与非 可用

  怎么才能 才能 设置呢?

  NSObject类有哪几个最好的方式instancesRespondToSelector都还要用来判断哪几个类的实例与非 响应指定的最好的方式,可能性要判断哪几个类与非 响应哪几个类最好的方式则都还要使用respondToSeletor最好的方式。代码如下:

  下面让我们让我们让我们 分别从哪几个方面讨论一下:

  无论是在新的系统版本中调用可能性不支持了的API,还是在旧的系统版本中调用新的系统版本中才引入的API都有因为让我们让我们让我们 的任务管理器Crush。刚刚让我们让我们让我们 在调用哪此让我们让我们让我们 部署的版本前一天去掉 的API可能性Framework时还要进行判断当前任务管理器所运行的环境与非 支持。

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