使用未声明的类型 'AttributedString'

Use of undeclared type 'AttributedString'

Xcode 8 beta 4 不再识别 Foundation class 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 个测试版中可用,我想这是一个需要修复的 Foundation 错误,而不是某些来源Playground 中的代码错误?

虽然在 Xcode 发行说明中没有记录,但 Swift 进化提案 SE-0086 Drop NS Prefix in Swift Foundation 的第 2 版更新已将 "NS" 前缀添加回几个基金会 classes 之前删除了前缀。

原因如下:

If the class is planned to have a value-type equivalent in the near future, then keep the NS prefix. Examples: NSAttributedString, NSRegularExpression, NSPredicate.

因此,下一次 Swift AttributedString 类型将 return 在 一些 点作为结构,而不是 class.

听起来其中一些改进将是 "a focus area for Swift 4." 现在,有必要恢复使用 NSAttributedString class。

如果您想知道有多少类型受到 SE-0086 v2 更新的影响,看起来 revision 影响了之前删除 NS 前缀的约 32 种类型对于 Swift 3.