8

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 中的一些源代码错误?

4

1 回答 1

10

尽管在 Xcode 发行说明中没有记录,但对Swift Foundation 中的 Swift 进化提案 SE-0086 Drop NS Prefix的第 2 版更新已将“NS”前缀添加回几个之前删除前缀的 Foundation 类。

原因如下:

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

因此,SwiftAttributedString类型将在某个时候返回,作为一个结构,而不是一个类。

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

如果您想知道 SE-0086 v2 更新影响了多少类型,那么该修订似乎影响了大约 32 种类型,这些类型之前已经为 Swift 3 删除了 NS 前缀。

于 2016-08-02T14:28:29.520 回答