gpt4 book ai didi

ios - 为什么 xcode 在这些语句中建议错误修复(来回无休止)?

转载 作者:搜寻专家 更新时间:2023-11-01 07:26:06 25 4
gpt4 key购买 nike

我有这一行,是用 Swift 1.2 使用 XCode 6 编写的

self.mainMenuButton.titleLabel?.font = UIFont(name: Box.fontName, size: mainMenuButton.titleLabel?.font.pointSize!)

它显示了这个错误

operand of postfix "!" should have an optional type

基本上建议我改成这个

self.mainMenuButton.titleLabel?.font = UIFont(name: Box.fontName, size: mainMenuButton.titleLabel?.font.pointSize)

完成后需要我将 ! 放回第一行,因此它会在建议中循环而不会结束...

为什么会出现这种情况,如何解决?

最佳答案

哎呀,这个问题我遇到过好多次了!真的很困惑。问题在于 UIFont 初始化语句:

UIFont(name: ..., size: mainMenuButton.titleLabel?.font.pointSize!)

问题是 UIFont 初始化器需要一个非可选的 size 参数。但是在您的代码 mainMenuButton.titleLabel? 中,? 表示 mainMenuButton.titleLabel?.font.pointSize! 可以返回可选值,无论是否在末尾放置 !

解决方案

解决办法是把titleLabel后面的?改成!

来回错误修复说明

Xcode 不够聪明,不知道 ? 是问题的根本原因,它只是认为既然表达式最终返回 pointSize,你应该添加一个! 以确保 pointSize 不为零。但是,如文档中所示,pointSize 不是可选的!所以没有必要使用 ! 来解包它。这就是 Xcode 建议删除 ! 的原因。但是删除它会导致表达式返回一个可选的!而 size 参数只允许非可选值!所以 Fix-It 来回循环......

编辑

另外,我测试了它,这个错误来回问题在 Xcode 7 中得到了修复。与 Xcode 7 相比,Xcode 6 已经过时了。

关于ios - 为什么 xcode 在这些语句中建议错误修复(来回无休止)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com