不知道大家有没有遇到过这种错误,这种错误导致的原因是多样的,最常见的是在拷贝的过程中出现的文件损坏.比如在 Mac 和 Window 之间拷贝的时候出现这种错误的概率是最大的,那么出现这种错误的原因大家可以查看下Images.xcassets中的内部文件.通常正常的 Contents.json 文件是一些字典类型的数组,而损坏后的文件通常是些 X 进制类型的文件.
X进制文件如下所示:
6300 0000 6300 0000 0000 0000 ff81 00000000 0000 207b 0a20 2020 2020 2022 6964696f 6d22 203a 2022 6970 686f 6e65 222c0a20 2020 2020 2022 7369 7a65 2220 3a202232 3978 3239 222c 0a20 2020 2020 20227363 616c 6522 203a 2022 3278 220a 20202020 7d2c 0a20 2020 207b 0a20 2020 20202022 6964 696f 6d22 203a 2022 6970 686f6e65 222c 0a20 2020 2020 2022 7369 7a652220 3a20 2234 3078 3430 222c 0a20 20202020 2022 7363 616c 6522 203a 2022 3278220a 2020 2020 7d2c 0a20 2020 207b 0a202020 2020 2022 6964 696f 6d22 203a 20226970 686f 6e65 222c 0a20 2020 2020 20227369 7a65 2220 3a20 2236 3078 3630 222c0a20 2020 2020 2022 7363 616c 6522 203a2022 3278 220a 2020 2020 7d0a 2020 5d2c0a20 2022 696e 666f 2220 3a20 7b0a 20202020 2276 6572 7369 6f6e 2220 3a20 312c0a20 2020 2022 6175 7468 6f72 2220 3a202278 636f 6465 220a 2020 7d0a 7d
对于正常的 Contents.json 文件中的内容应该是如下所示:
{ "images" : [ { "idiom" : "iphone", "size" : "29x29", "scale" : "2x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "icon-1.png", "scale" : "3x" }, { "size" : "40x40", "idiom" : "iphone", "filename" : "icon.png", "scale" : "2x" }, { "idiom" : "iphone", "size" : "40x40", "scale" : "3x" }, { "idiom" : "iphone", "size" : "60x60", "scale" : "2x" }, { "size" : "60x60", "idiom" : "iphone", "filename" : "icon1-2.png", "scale" : "3x" } ], "info" : { "version" : 1, "author" : "xcode" }}
显而易见,也就是文件被莫名的转换了,那么问题来了,如何将这些文件转换回去呢?小编在这还没有找到一个完美的解决办法,不过小编的通常做法是将images.xcassets 中的所有的文件全部删掉,只添加AppIcon.appiconset和LaunchImage.launchimage(这两个文件夹需要从一个能打开的项目中拷贝过来就 OK)替换掉之前出问题的文件,其余的图片重新导入一遍就 OK 了,这个images.xcassets 在 Xcode 工程中就能打开了.如果大家有能解决上述编码格式莫名相互转换的方法的话希望给我留言,大家共同学习探讨.谢谢.
对于刚接触 iOS 开发的人员来说,推荐大家一个关于images.xcassets 介绍的博客连接地址(老刘,外号刀哥):
http://blog.csdn.net/liufan321/article/details/9121241
著作权声明:本文为作者原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!