这儿每天共享一个 iOS 的新知识,快来重视我吧

假如你想搭建一个归于自己的 GPT AI 能够参阅我这篇文章介绍:0 根底,1 分钟搭建自己的 AI 东西

前言

不知道你们平常有没有用过 #error 这个功能,它是一个编译器指令,允许我们宣布编译过错,在开发中的某些场景下对错常有用的,今日就来共享一些我知道的使用场景。

1、避免某些未完成的代码跑到线上

有的时分,某些函数由于种种原因不能立即完成,或许需求没有确认,这种情况下,我见过最多的处理方式是打上 TODO 标签,比方:

func getSomeNumber() -> [Int] {
    // TODO: 这儿暂时写死,需求待确认
    return [1, 2, 3]
}

这样写完,编译时就会产生一个 TODO 的正告,但是这种办法有些显着的问题:

  1. TODO 太多的时分可能会被忽略掉

  2. 上线前可能会忘掉处理

  3. 即便运转在线上,也不会报任何的过错

为了处理这种问题,使用 #error 是比较合适的,比方为了的 Debug 时正常运转,能够在 Release 下报一个人编译过错,以避免跑到线上:

func getSomeNumber() -> [Int] {
    // TODO: 这儿暂时写死,需求待确认
    #if DEBUG
    return [1, 2, 3]
    #else
    #error("函数没有完成,需求及时处理!!!")
    #endif
}

这段代码在 Debug 时完全能够经过,但是一旦跑在 Release 下,就会编译失利,及时提醒需求处理:

swift 中 #error 的一些妙用

2、Demo 中的一些重要提示

假如你在开发一个 Framework,在供给出去给其他人演示的 Demo 里必定不能放一些你自己的灵敏信息的,比方 api_token 之类的,这时分就需求加上一个 #error 来引导使用者替换他们自己的 token

#error("请先替换你自己的 token,前往 https://xxx.com/ 请求")
let api_token = "1234567890"

这样,当他人首次运转你的 Demo 时,就会由于编译过错而注意到这个必要事项:

swift 中 #error 的一些妙用

3、平台支撑

假如你的 Framework 只支撑某个平台,那么也能够用 #error 来告诉用户:

#if os(macOS)
    #error("这个 Framework 不支撑 macOS 哦~")
#endif

或许:

#if !canImport(UIKit)
  #error("这个 Framework 需求 UIKit 才干使用哦~")
#endif

结语

以上就是今日共享的 #error 的一些妙用,你还知道其他的场景吗?也能够共享给我。

这儿每天共享一个 iOS 的新知识,快来重视我吧

本文同步自微信大众号 “iOS新知”,每天准时共享一个新知识,这儿仅仅同步,想要及时学到就来重视我吧!