关于 iOS error: read failed: The data couldn’t be read because it isn’t in the correct format. 的问题

1. 前言

今天在 Localizable.strings 文件里面增加了一些内容,编译报出如下错误:

Localizable.strings
note: detected encoding of input file as Unicode (UTF-8)error: read failed: Couldn’t parse property list because the input data was in an invalid format

2. 填坑过程

2.1 使用 Beyond Compare 软件对比新旧文件不同之处

一开始博主首先想到的是对比新旧文件的差异,没有看出任何问题。无果。

2.2 Google 或者 Baidu 检索前辈经验

接下来便想着检索前辈经验,几乎全部提到的是如下解决方案:

某行末尾缺少英文分号 ";"

可博主全程检查下来,亦使用了比较软件专门检查不同之处是否缺少了英文分号,发现并不存在这种问题。

2.3 难道要推倒之前新增的内容,重新来过?

这是谁也不想面临的结果,因为这是最后没办法的办法了;
不知道问题所在,谁知道推倒重来之后,是否不会引入相同的问题。

可就在那么一瞬间,博主似乎发现了猫腻。

Xcode 显示如下:
关于 iOS error: read failed: The data couldn’t be read because it isn’t in the correct format. 的问题_第1张图片
Beyond Compare 显示如下:
在这里插入图片描述
莫非本次报错是因为 空格缩进 的格式问题?

果断在 Xcode 里面删除该三行前面的空格,然后使用 Tab 缩进,重新编译最终通过了。

3. 结语

其实新增内容并不是博主在 Xcode 里面直接输入的,
而是先在 Notepad 里面把 Android 的对应内容替换成 OC 的格式,
然后通过 QQ 传输之后,在 Mac 电脑上直接复制粘贴到 Xcode 里面的。

博主事后还验证了一下,Localizable.strings 中的内容并不一定要 Tab 键缩进,而是经过这么多软件中转,其空格编码格式可能与 Xcode 默认的编码格式存在出入。

幸亏博主今天眼神好,否则不知道要耗到什么时候。在此书写填坑过程,加深印象的同时,也希望能够帮到大家。

你可能感兴趣的:(iOS)