gpt4 book ai didi

ios - swift 3 错误 : [_SwiftValue pointSize] unrecognized selector sent to instance

转载 作者:IT王子 更新时间:2023-10-29 05:06:14 24 4
gpt4 key购买 nike

我刚刚将我们的项目迁移到 swift 3,但由于一个问题导致了很多崩溃:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[_SwiftValue pointSize]:无法识别的选择器发送到实例

该错误的原因是调用:

[NSAttributedString(NSExtendedStringDrawing) boundingRectWithSize:options:context:]

我注意到,如果我将 String 转换为 NSString 并对其调用 boundingRectWithSize,它将抛出该错误。它似乎也发生在许多其他部分,例如,如果我在 Storyboard中发送 View Controller 标题,它会抛出相同的错误。

有人遇到同样的问题吗?

重现问题:

在 Xcode 8 中创建一个新的 Swift 3 项目并在 viewDidLoad 中添加以下行:

let attributes: [String: AnyObject?] = [
NSFontAttributeName: UIFont.systemFont(ofSize: 14)
]
let boundingRect = ("hello" as NSString).boundingRect(with: CGSize(width: 100, height: 100), options: .usesLineFragmentOrigin, attributes: attributes, context: nil)

但正如我所说,它在许多其他地方崩溃,因为 UIKit 似乎在许多部分内部使用了这个方法

最佳答案

如果我使用你的测试代码,但让 attributes 的数据类型默认,它不会崩溃。即:

let attributes = [NSFontAttributeName: UIFont.systemFont(ofSize: 14)]

按住 Option 键并单击变量表示它是 [String : UIFont]

一些额外的测试表明它与可选对象有关; [String: AnyObject] 似乎工作正常。

编辑:毕竟,我决定阅读说明使用 [String: Any] 的文档。 :)

关于ios - swift 3 错误 : [_SwiftValue pointSize] unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508384/

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