IOS开发之不同版本适配问题3(#ifdef __IPHONE_7_0 BaseSDK Development Target)
来源:互联网 发布:mac星球基地中文版 编辑:程序博客网 时间:2024/04/29 15:30
在xcode中又两个地方设置sdk,一个是Development Target,指的是编译后的app可再终端的哪个版本上运行,设置方法如图
另外一个是Base SDK,指的是当前编译所用的SDK版本,设置方法如图
这两个在开发的时候需要注意,比如用xcode5.0默认的设置开发的app是iOS7.0的,想要适配iOS6.1,需要将Development Target改成iOS 6.1,并且将模拟器设置成iOS6.1,再运行程序的话就是在iOS6.1下边运行了,但是如果不设置BaseSDK的话,工程就是基于SDK7.0编译而基于SDK6.1运行,这样极有可能崩溃,比如因tintColor属性找不到而崩溃。所以调试的时候一定要设置BaseSDK。
还是之前文章的例子,在xcode5.0下新建一个工程,默认的Development Target和BaseSDK都是7.0,在AppDelegate.m文件的didFinishLaunchingWithOptions方法里边写上一句
- self.window.tintColor = [UIColor redColor];
运行程序,不会出错。现在将Development Target改成6.1,将模拟器改成6.1。
然后运行,编译通过,但是运行崩溃,打印
- 2014-03-21 09:26:58.253 TestTarget2[77981:907] -[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850
- 2014-03-21 09:26:58.284 TestTarget2[77981:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850'
这是因为程序是在SDK7.0下编译的,tintColor没有问题,但是在SDK6.1下运行,6.1中是没有tintColor的,结果就崩溃了。将BaseSDK改成6.1,再运行,就会编译出错,无法运行
将上边一句改成
- #ifdef __IPHONE_7_0
- self.window.tintColor = [UIColor redColor];
- #endif
再运行,完美通过……
0 0
- IOS开发之不同版本适配问题3(#ifdef __IPHONE_7_0 BaseSDK Development Target)
- IOS开发之不同版本适配问题3(#ifdef __IPHONE_7_0 BaseSDK Development Target)
- IOS开发之不同版本适配问题2(#ifdef __IPHONE_7_0)
- IOS开发之不同版本适配问题2(#ifdef __IPHONE_7_0)
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- iOS开发之不同版本适配问题
- IOS开发之不同版本适配问题
- iOS开发之版本兼容一,使用#ifdef语法
- iOS不同版本适配问题
- iOS 开发之Target
- iOS 开发之Target
- iOS开发日志 之 iOS10版本适配问题
- iOS 开发之Target-Action
- iOS开发之iPhone不同屏幕尺寸的适配及切图问题
- 【小牛分享】人员组织架构图 - 为纪念2013即将结束而分享
- 用SQLyog 备份数据库的时候,报错
- jQuery Validate自定义校验
- EasyUI DataGrid 实用例子(2015-05-22)
- Linux发展
- IOS开发之不同版本适配问题3(#ifdef __IPHONE_7_0 BaseSDK Development Target)
- 用Qemu模拟ARM(2)
- 背景文字或者背景图片右对齐
- Html关于日历控件的制作
- 图像分割之聚类算法
- Android SDK Manager 更新代理配置
- windows 与 GUI 交互
- c++实现Bloom Filter
- yum只下载软件不安装的两种方法