【问题标题】:Get xcode 4.5 to warn about new API calls获取 xcode 4.5 以警告新的 API 调用
【发布时间】:2017-05-11 12:58:13
【问题描述】:

this question 的答案似乎不适用于 xcode 4.5。总而言之,XCode 有没有办法警告仅在部署目标之后的版本才可用的类、方法和过程?

【问题讨论】:

    标签: objective-c ios xcode warnings


    【解决方案1】:

    在您链接的问题中也有正确答案。通过一些实验,我想出了这个(来自 mattjgalloway 的回答):

    #define __AVAILABILITY_TOO_NEW __attribute__((deprecated("TOO NEW!"))) __attribute__((weak_import))
    
    #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0
    #undef __AVAILABILITY_INTERNAL__IPHONE_6_0
    #define __AVAILABILITY_INTERNAL__IPHONE_6_0 __AVAILABILITY_TOO_NEW
    #endif
    

    然后重复所有有意义的版本(即 Xcode 4.5 的 4.3 及更高版本)。 __IPHONE_OS_VERSION_MIN_REQUIRED 宏将检查部署目标。

    【讨论】:

    • +1 为这样一个非常肮脏的预编译器黑客。如果您是一个不幸的草皮,仍然必须支持 iOS 4,请重复 iOS 5 和 iOS 6 警告的正文。
    • 非常好。但是,它并没有警告一切。如果我在 XIB 中打开了 Autolaypout,那么旧的 SDK 会出现运行时崩溃。
    • 可悲的是,它并没有警告一切。我收到了ABAddressBookCreateWithOptions 的警告,但没有(NSString *)capitalizedStringWithLocale:(NSLocale *)locale 的警告,它们都是 iOS 6.0 中的新功能。
    • 在 Xcode 4.5.2 中不适合我;它不会警告 -application:willFinishLaunchingWithOptions: 在部署到 iOS 5.1 时(基础 SDK 是“最新的”)。
    • 这在 Xcode 5 和 iOS 7 中不再适用于我——有人确认吗?
    【解决方案2】:

    这个工具可以在你的项目中找到新的 API 调用:http://www.deploymateapp.com/

    【讨论】:

      猜你喜欢
      • 2013-10-07
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      相关资源
      最近更新 更多