iPhone多语言nib更新问题

使用xcode实现app的多语言非常简单,就3步:

  • 修改xib,增加不同语言版本
  • 添加.string文件,增加不同语言的xib
  • 修改代码使用NSLocalizedString调用string文件中资源

在增加了新语言版本的xib,出现一个问题,不管是在模拟器中还是真机中,界面都不会更新了。无论多少遍clean也没用。除非把应用删掉重新下载。

仔细研究发现,所以界面出现问题,是因为默认时候,nib文件会放在app的根目路下,但一增加新语言,所有的nib文件会分别复制到不同语言的目录里,但对于xcode来说,他只会复制和更新nib,但不会删除无效的nib文件。不删除并非xcode的BUG,而是iOS的安全机制导致的,自己写的程序也没办法把app目录下的nib删除掉。

所以,对界面增加新语言后,一定要把app删除重新添加,如果有些数据需要备份,可以通过xcode下载到本地,然后加入项目中,再写临时代码将复制到app根目录的文件复制到指定目录,最后删除临时代码。

Leave a Reply

Your email address will not be published. Required fields are marked *