一尘不染

使用未声明的类型'AttributedString'

swift

Xcode 8 beta 4不再识别Foundation类AttributedString

我在一个简单的操场示例中复制了它:

//: Playground - noun: a place where people can play

import Foundation

let attrStr1 = NSAttributedString()
let attrStr2 = AttributedString()  // Use of undeclared type 'AttributedString'

由于AttributedString在较早的Xcode 8 Swift 3
Beta中可用,我想这是一个Foundation需要修复的错误,而不是Playground中的某些源代码错误?


阅读 263

收藏
2020-07-07

共1个答案

一尘不染

尽管未在Xcode发行说明中记录,但Swift Foundation中对Swift进化建议SE-0086
Drop NS Prefix
的第2版更新已将“
NS”前缀重新添加到了几个先前删除该前缀的Foundation类中。

原因如下:

如果计划在不久的将来使该类具有等效的值类型,则保留NS前缀。示例:NSAttributedString,NSRegularExpression,NSPredicate。

因此,Swift AttributedString类型将在 某个 时间返回,作为下一次结构,而不是作为类。

听起来其中一些改进将成为“ Swift 4的重点领域”。现在,有必要恢复使用NSAttributedString该类。

如果您想知道SE-0086 v2更新影响了多少种类型,看起来该 版本会影响〜32种类型,这些类型以前已为Swift
3删除了NS前缀。

2020-07-07