iOS 警告⚠️解决办法

⚠️1、 'interfaceOrientation' is deprecated: first deprecated in iOS 8.0

解决:

Should change

if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
  ...
}
to

if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation])) {
  ...
}

即用[[UIApplication sharedApplication] statusBarOrientation]替换self.interfaceOrientation


⚠️2、Category is implementing a method which will also be implemented by its primary class 引发的相关处理

今天在处理项目中相关警告的时候发现了很多问题,包括各种第三方库中的警告,以及各种乱七八糟的问题 先说说标题中的问题 Category is implementing a method which will also be implemented by its primary class 这个警告的意思是 我在category中重写了原类的方法 而苹果的官方文档中明确表示 我们不应该在category中复写原类的方法,如果要重写 请使用继承 原文是这样的:A category allows you to add new methods to an existing class. If you want to reimplement a method that already exists in the class, you typically create a subclass instead of a category. 所以这里就出现了警告,警告而已,毕竟不是错误,所以也不会影响我们的使用,但是会让人看着很不爽,所以查了一下不显示这个警告的方法

1.在相关位置插入下面这段代码

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
// your override
#pragma clang diagnostic pop

2.在target的 build settings下 搜索other warning flags 然后给其添加 -Wno-objc-protocol-method-implementation
好了 警告没有了

这里顺便说一下 2中的方法 :
对很多批量的警告很有用 而后面相关字段 -Wno-objc-protocol-method-implementation 其实是可以查得到的方法是在xcode中选择你想屏蔽的警告,右键选择 reveal in log 就可以在警告详情中发现 -Wobjc-protocol-method-implementation 这么一个格式的字段 在-W后添加一个no- 然后在用2中的方法添加到 other warning flags 中 就可以处理大部分的警告了

你可能感兴趣的:(iOS 警告⚠️解决办法)