Xcode 7崩溃:[NSLocalizableString length] 30000

10

这个应用程序在iOS7、8、9上卡住了,调用了30000次[NSLocalizableString length]函数,导致CPU使用率达到最大。

另请参见https://forums.developer.apple.com/thread/16001

(lldb) bt 
* thread #1: tid = 0x2cb4df, 0x0349065c Foundation`-[NSLocalizableString length] + 6, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0xbf728ffc) 
  * frame #0: 0x0349065c Foundation`-[NSLocalizableString length] + 6 
    frame #1: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #2: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #3: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #4: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #5: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #6: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #7: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #8: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #9: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #10: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #11: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #12: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #13: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #14: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #15: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #16: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #17: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
3个回答

22

我勾选了基础设置中的英语复选框,问题就解决了。

设置


1
然而,这种解决方案的问题在于,如果您例如向故事板添加新的文本视图,则必须删除本地化并重新添加它。否则,您可能会遇到与之前相同的问题。 - Zsolt
非常感谢。帮助重新创建了Storyboard中的本地化字符串文件。 - Massmaker
我发现如果我勾选了英语,运行应用程序,然后取消勾选英语,一切都正常。这绝对是Xcode中的一个错误。 - Mark Suman

3
如果不需要基本国际化,可以在项目设置中关闭它-这在我的情况下解决了问题。

turn off base internationalization

当关闭基本国际化时,受影响的文件(storyboard, launchscreen)会从base.lproj移动到en.lproj。看起来,在没有至少一个(主要的)语言的情况下使用base.lproj可能会出现问题。
我在Xcode 6.4中创建新项目,然后在Xcode 7中打开后遇到了这个问题。

0
我所做的是将本地化开发区域从中国更改为美国。

img


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接