BaseSDK & DeploymentTarget

2018-08-24  本文已影响12人  蓝白自由
deployment [diː'plɒɪmənt] 调度,部署

这两个在开发的时候需要注意,比如用 Xcode5.0 默认的设置开发的 app是 iOS 7.0 的,想要适配 iOS6.1,需要将 Development Target 改成 iOS 6.1,并且将模拟器设置成 iOS 6.1,再运行程序的话就是在 iOS 6.1 下边运行了,但是如果不设置 BaseSDK 的话,工程就是基于 SDK 7.0 编译而基于 SDK 6.1 运行,这样极有可能崩溃;
比如 因 tintColor :
self.window.tintColor = [UIColor redColor];
运行程序,不会出错。现在将 Development Target 改成 6.1,将模拟器改成 6.1。然后运行,编译通过,但是运行崩溃,打印

-[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850
reason: '-[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850'

这是因为程序是在 SDK 7.0 下编译的,tintColor 没有问题,但是在SDK6.1下运行,6.1中是没有 tintColor 的,结果就崩溃了。将 BaseSDK改成6.1,再运行,就会编译出错,无法运行


将上边一句改成

#ifdef __IPHONE_7_0    self.window.tintColor = [UIColor redColor];#endif

再运行,完美通过……

上一篇下一篇

猜你喜欢

热点阅读