我正在开发一款iPhone应用程序,我们在初始版本中使用英语和日语进行本地化.我们经常调用NSLocalizedString()
加载适当的本地化字符串进行显示.通常情况下,将本地化字符串保存在实例变量中是为了下次我们需要它们,或者我是否在这里进行微优化,我是否应该在每次需要时重新加载字符串?
微型优化.首先使它工作,然后使其正确,然后快速.当你进入第3步,运行Shark(或乐器),然后按照它的指导.
这是"依赖"答案中的一个.
调用NSLocalizedString涉及在bundle中执行查找.这些查找非常快,但不是免费的.是否缓存此返回值或只是调用NSLocalizedString的便利取决于它的使用方式.
如果您将返回传递给类似UILabel或UITableViewCell的文本字段,则只有在首次设置属性时才会进行查找.
如果您在drawRect调用中使用它,那么只有当您的视图需要重新绘制时才会进行查找,而这种查看可能经常,不经常或从不.
如果你在游戏界面中使用它,每一帧都重新绘制屏幕,那么对于一些UI元素,这些查找可能每秒发生数百次.
我会说,对于像#3这样的东西,你应该从缓存结果开始.
对于其他人,请以最方便的方式编写它们,如果您的UI中存在性能问题,请使用Instruments缩小原因.如果是NSLocalizedString则相应地优化它.