社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
目录
Dependency Analysis Warning 依赖分析警告
Value Conversation Issue 类型转换出现的问题
Asset Catalog Compiler Warning xcassets图片警告
最近,突然发现项目的警告数突增,总结了一下,发现主要为以下几种错误:
从Xcode中上图中的位置可以看到项目中所有的警告类型和位置。
我们的项目的警告类型如下:
出现的问题类型,如下图:
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中使用弱引用
这个错误在我当前的程序中出现了2种情况:
1>architecture i386 警告
解决:检查 Build Phases->Compile Sources 里面是不是添加了.md删掉即可。
2>architecture x86_84 警告
解决:检查Build Phases->Copy Bundle Resources 里面是不是少了.md添加即可。
原因:使用了系统已经弃用的方法,如下图:
解决:cmd + 鼠标左键,点进去方法的声明,苹果弃用的方法下面都会标注新的替代的方法,如下图:
原因:进行类型转换时,使用了错误的格式说明符导致的。
解决:修改成正确的格式,如下图,提示修改为用 %d 代替 %lu,但是,tag的类型是 long NSInteger,所以应该修修改为下图:
原因:用户在开发的过程中,为了提醒自己,自定义的一些警告,如下图:
原因:定义的数据类型需要标记是否为空
如上图错误解决:根据需要,给予以下三个值中的一个值。
_Nullability 指针可能会为空
_Nonnull 指针不可能为空
_Null_unspecified 指针值为空不为空不确定
原因:定义了部分变量,但是未使用
解决:确定这部分变量是否有用,如没有用删除这部分变量。
原因:需要转换的数据和转换之后的数据类型不一致,如下图:
解决:统一一下数据类型,如果需要进行强制类型转换。
我们的项目中是第三方出现的警告:Unknown warning group '-Wreceiver-is-weak', ignored
我们的里面这个出现在第三方XMPP里面的,里面的警告超级多,都是因为定义变量的时候,直接是在 {} 内定义的,比如:XMPPStreamState state; 而不是使用@property (nonatomic, strong) XMPPStreamState state; 这种定义的,且在block中没有进行弱引用导致的。
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方法,修改其中一个方法名。
原因:如上图,xcassets图片文件夹中存在相同命名的图片
解决:通过 name 找到图片文件,修改其中一个图片的名字
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!