gpt4 book ai didi

ios - NSAttributedStringKey.attachment 与 NSAttachmentAttributeName

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:31:49 25 4
gpt4 key购买 nike

我在使用 NSAttributedStringKey.attachment 与 NSAttachmentAttributeName 时遇到了问题。相关代码如下:

    var key: Any?
if #available(iOS 11, *) {
key = NSAttributedStringKey.attachment
}
else {
key = NSAttachmentAttributeName
}

两件事之一正在发生。在我尝试使用此代码的实际位置(我自己设计的 Cococapod,部署目标为 iOS 8,现在使用 Xcode 9 构建),我收到错误消息:

Type 'NSAttributedStringKey' (aka 'NSString') has no member 'attachment'

或者,如果我只是创建一个新的示例项目并将部署目标设置为 iOS 8,我会得到:

'NSAttachmentAttributeName' has been renamed to 'NSAttributedStringKey.attachment'

这不是我期望的 #available 行为。想法?

最佳答案

Stringstruct 的区别在于 Swift 3(使用 String,例如 NSAttachmentAttributeName)和 Swift 4(使用结构静态属性,例如 NSAttributedStringKey.attachment),不在 iOS <11 和 iOS >=11 之间。例如,您可以在 Swift 4 项目中使用 NSAttributedStringKey.attachment 和任何支持版本的 iOS 中的类似内容(例如 .attachment 自 iOS 7 起可用)。 #available 不适用,因为它是 Swift 语言版本差异而不是操作系统版本差异。

确保您的 pod 设置为正确的 Swift 版本,然后它应该可以按预期工作。您可以通过在项目顶部添加一个 .swift-version 文件来告诉 CocoaPods:

$ echo 4.0 >.swift-version

这个神奇的版本文件在去年的一篇 CocoaPods 博文中被提及:http://blog.cocoapods.org/CocoaPods-1.1.0/

关于ios - NSAttributedStringKey.attachment 与 NSAttachmentAttributeName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145780/

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