我继承了一个针对iOS6的iOS项目.几个星期前,我把它移到
Xcode 6并清理了所有的警告.一个这样的警告是:
'UITextAttributeTextShadowColor' is deprecated: first deprecated in iOS 7.0 - Use NSShadowAttributeName with an NSShadow instance as the value
我对此的修复使用了NSShadowAttributeName,但我做得不正确,导致应用程序在执行期间的某个时刻崩溃.几个星期后,当我发现时,我暂时恢复了旧代码.但是,当我恢复旧代码时,弃用警告没有回来.我一直无法弄清楚为什么并且想要解决这个问题 – 它警告我警告没有显示出来.
对于它的价值,在代码的某些部分我需要保持弃用警告,因为需要维持对iOS 6的支持.在这些情况下,iOS 6和iOS 7设备有单独的代码,iOS 6代码是包围着:
SILENCE_IOS7_DEPRECATION( // iOS 6 code here );
(见https://stackoverflow.com/a/26564750/3352624)这用于:
#define SILENCE_DEPRECATION(expr) \ do { \ _Pragma("clang diagnostic push") \ _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \ expr; \ _Pragma("clang diagnostic pop") \ } while(0) #define SILENCE_IOS7_DEPRECATION(expr) SILENCE_DEPRECATION(expr) #define SILENCE_IOS8_DEPRECATION(expr) SILENCE_DEPRECATION(expr)
所以我很困惑为什么当我将代码恢复到以前的状态时,不再显示弃用警告.
这是我尝试过的:
>从我的代码中删除了对SILENCE_DEPRECATION宏的所有引用
>已验证的不推荐使用的功能在目标的构建设置下
>已验证我的Base SDK设置为最新iOS(8.1),我的iOS部署目标设置为iOS 6.0
>在目标的构建设置下添加了-Weverything to Other Warnings Flags
>从我的任何更改之前的git中检出我的工作区的旧版本
>退出并重新启动Xcode 6
>试过Xcode 5
>重新启动我的电脑,然后启动Xcode
这些都没有导致弃用警告回来.任何想法我接下来应该尝试什么?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。