使用未声明类型'AttributedString'

时间:2016-08-02 02:14:19

标签: swift xcode 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'

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

1 个答案:

答案 0 :(得分:10)

虽然在Xcode发行说明中未记载,但对Swift evolution proposal SE-0086 Drop NS Prefix in Swift Foundation的第2版更新增加了" NS"前缀回几个先前删除了前缀的基础类。

原因如下:

  

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

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

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

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