XZ_iOS之警告的处理 - Go语言中文社区

XZ_iOS之警告的处理


目录

Semantic Issue 语义问题

Dependency Analysis Warning 依赖分析警告

Deprecations 使用了已经弃用的方法

Format String Issue 语法问题

User-Defined Issue 用户自定义的警告

Nullability Issue 空值警告

Unused Entity Issue 定义之后未使用

Value Conversation Issue 类型转换出现的问题

Lexical or Preprocessor Issue

Warning limit exceeded

Apple Mach-O Linker Waning

Asset Catalog Compiler Warning  xcassets图片警告


最近,突然发现项目的警告数突增,总结了一下,发现主要为以下几种错误:

 

从Xcode中上图中的位置可以看到项目中所有的警告类型和位置。

我们的项目的警告类型如下:

Semantic Issue 语义问题

出现的问题类型,如下图:

1>This block declaration is not a prototype

解决:block没有参数,需要添加void 字段,如下图:

2>Block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior

原因:在block中使用了强引用导致的

解决:在block中使用弱引用

Dependency Analysis Warning 依赖分析警告

这个错误在我当前的程序中出现了2种情况:

1>architecture i386 警告

解决:检查 Build Phases->Compile Sources 里面是不是添加了.md删掉即可。

2>architecture x86_84 警告

解决:检查Build Phases->Copy Bundle Resources 里面是不是少了.md添加即可。

Deprecations 使用了已经弃用的方法

原因:使用了系统已经弃用的方法,如下图:

解决:cmd + 鼠标左键,点进去方法的声明,苹果弃用的方法下面都会标注新的替代的方法,如下图:

Format String Issue 语法问题

原因:进行类型转换时,使用了错误的格式说明符导致的。

解决:修改成正确的格式,如下图,提示修改为用 %d 代替 %lu,但是,tag的类型是 long NSInteger,所以应该修修改为下图:

User-Defined Issue 用户自定义的警告

原因:用户在开发的过程中,为了提醒自己,自定义的一些警告,如下图:

Nullability Issue 空值警告

原因:定义的数据类型需要标记是否为空

如上图错误解决:根据需要,给予以下三个值中的一个值。

_Nullability 指针可能会为空

_Nonnull 指针不可能为空

_Null_unspecified 指针值为空不为空不确定

Unused Entity Issue 定义之后未使用

原因:定义了部分变量,但是未使用

解决:确定这部分变量是否有用,如没有用删除这部分变量。

Value Conversation Issue 类型转换出现的问题

原因:需要转换的数据和转换之后的数据类型不一致,如下图:

解决:统一一下数据类型,如果需要进行强制类型转换。

Lexical or Preprocessor Issue

我们的项目中是第三方出现的警告:Unknown warning group '-Wreceiver-is-weak', ignored

Warning limit exceeded

我们的里面这个出现在第三方XMPP里面的,里面的警告超级多,都是因为定义变量的时候,直接是在 {} 内定义的,比如:XMPPStreamState state; 而不是使用@property (nonatomic, strong) XMPPStreamState state; 这种定义的,且在block中没有进行弱引用导致的。

Apple Mach-O Linker Waning

1>ld: warning: directory not found for option '-L/...'

原因:查询 Library 时出现的异常。

解决:Project -> targets -> Build Setting -> Library Search Paths

删除里面的路径

2>ld: warning: directory not found for option '-F/...'

原因:查询 Framework 时出现的异常

解决:Project -> targets -> Build Setting -> Framework Search Paths

删除里面的路径

3>ld: warning: instance method 'attributesAsDictionary' in category from '/Users/admin/../xxx.o' conflicts with same method from another category

原因: xxx类中的方法attributesAsDictionary跟另一个类中的方法重名导致的,搜索attributesAsDictionary方法,修改其中一个方法名。

Asset Catalog Compiler Warning  xcassets图片警告

原因:如上图,xcassets图片文件夹中存在相同命名的图片

解决:通过 name 找到图片文件,修改其中一个图片的名字

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/understand_XZ/article/details/81480198
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 23:34:00
  • 阅读 ( 1601 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢