使用未声明类型'AttributedString'

8 xcode swift swift3 xcode8-beta4

Xcode 8 beta 4不再识别基础课程AttributedString.

我在这个简单的游乐场示例中重现了它:

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

import Foundation

let attrStr1 = NSAttributedString()
let attrStr2 = AttributedString()  // Use of undeclared type 'AttributedString'
Run Code Online (Sandbox Code Playgroud)

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

小智 10

虽然在Xcode的发行说明无证,第2版的更新斯威夫特发展建议SE-0086降NS前缀斯威夫特基金会加入了"NS"前缀回到先前下降前缀几个基础类.

原因如下:

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

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

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

如果您想知道有多少类型受到SE-0086 v2更新的影响,看起来该版本会影响~32种类型,这些类型之前已经删除了Swift 3的NS前缀.