Xcode - 系统警告处理(清除和添加)

本文介绍如何在Xcode中处理系统警告,包括清除和添加警告的方法。提供了多种实用的编译器指令,如使用#warning添加逻辑相关警告,使用NS_DEPRECATED_IOS添加方法版本相关警告等。同时介绍了如何使用预编译指令忽略特定警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源链接:https://viktyz.gitbooks.io/iosnotebook-gitbook/Notes/Note_00193_20160919.html

方案名称

Xcode - 系统警告处理(清除和添加)

关键字

Xcode \ 添加警告 \ 清除警告 \ Warning

需求场景

  1. 消除系统中的编译警告

参考链接

  1. CocoaChina - 怎么去掉Xcode工程中的某种类型的警告
  2. 董铂然的博客 - iOS警告收录及科学快速的消除方法(推荐)
  3. 优快云 - iOS编译过程的原理和应用(推荐)
  4. Which Clang Warning Is Generating This Message?
  5. NSHipster - attribute
  6. 优快云 - iOS 合理利用Clang警告来提高代码质量

详细内容

可以通过以下三种方式添加警告

1.使用 #warning TODO 在代码中添加逻辑相关警告 2.使用 NS_DEPRECATED_IOS 添加方法版本相关警告 3.使用 __attribtue__ 编译器指令

//弃用API,用作API更新
#define __deprecated __attribute__((deprecated))

//带描述信息的弃用
#define __deprecated_msg(_msg) __attribute__((deprecated(_msg)))

//遇到__unavailable的变量/方法,编译器直接抛出Error
#define __unavailable __attribute__((unavailable))

//告诉编译器,即使这个变量/方法 没被使用,也不要抛出警告
#define __unused __attribute__((unused))

//和__unused相反
#define __used __attribute__((used))

//如果不使用方法的返回值,进行警告
#define __result_use_check __attribute__((__warn_unused_result__))

//OC方法在Swift中不可用
#define __swift_unavailable(_msg) __attribute__((__availability__(swift, unavailable, message=_msg)))

示例:

- (void)sampleWarningMethod __deprecated_msg("Unsafe method");
常见警告以及对应清除方法可以参考推荐链接
如果某警告实在无法清除,但是又不想让它显示,可以加入预编译指令
#pragma clang diagnostic push
#pragma clang diagnostic ignored "对应预编译指令"
    //这里写出现警告的代码
#pragma clang diagnostic pop

这段代码的作用是

  • 对当前编译环境进行压栈
  • 忽略"对应预编译指令"警告
  • 编译代码
  • 对编译环境进行出栈

关于预编译指令的详细对应关系,可以参考这里

关于 iOS 合理利用 Clang 警告来提高代码质量相关知识,可以参考这里



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值