首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Self.self打印Self

为什么Self.self打印Self
EN

Stack Overflow用户
提问于 2021-08-05 05:45:07
回答 1查看 51关注 0票数 1

我有一个自定义视图中的代码:

代码语言:javascript
复制
class AView: UIView {
   
   func setup {
       Bundle.main.loadNibNamed("\(Self.self)", owner: self, options: nil)
   }
   
}

我希望这会用AView加载nib文件名,它在调试模式下工作没有问题。但是当在发布模式下运行时,它会崩溃。

错误消息为:

代码语言:javascript
复制
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: '_TtC10ATPlatformP33_BB740EC0B8824C2F1932C467ED63DEF214LanguageBundle </private/var/containers/Bundle/Application/B0094397-EC2C-4550-8981-0CF2DCFB580C/xxx.app> (loaded)' with name 'Self''

这意味着"\(Self.self)"返回了Self字符串。

我意识到的是,当将Swift Compiler - Code Generation -> Optimization Level设置为[-Onone]时,它不会崩溃。

有人知道为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-05 06:01:09

这是bug SR-14564“当Swift优化时,"\(Self.self)"导致Xcode12.5出现问题”,它已经在Swift 5.5中得到了修复。您可能正在使用Xcode 12.5,它使用Swift 5.4。尝试更新到Xcode 13 Beta。你可以从here下载。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68661175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档