首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSAttributedStringKey.attachment对NSAttachmentAttributeName

NSAttributedStringKey.attachment对NSAttachmentAttributeName
EN

Stack Overflow用户
提问于 2017-09-10 21:34:13
回答 1查看 781关注 0票数 2

我对NSAttributedStringKey.attachment和NSAttachmentAttributeName有问题。以下是相关代码:

代码语言:javascript
运行
复制
    var key: Any?
    if #available(iOS 11, *) {
        key = NSAttributedStringKey.attachment
    }
    else {
        key = NSAttachmentAttributeName
    }

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

代码语言:javascript
运行
复制
Type 'NSAttributedStringKey' (aka 'NSString') has no member 'attachment'

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

代码语言:javascript
运行
复制
'NSAttachmentAttributeName' has been renamed to 'NSAttributedStringKey.attachment'

这不是我在#available中所期望的行为。有什么想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-11 05:08:53

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

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

代码语言:javascript
运行
复制
$ echo 4.0 >.swift-version

这个神奇的版本文件是在去年的CocoaPods博客文章中提到的:http://blog.cocoapods.org/CocoaPods-1.1.0/

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

https://stackoverflow.com/questions/46145780

复制
相关文章

相似问题

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