为什么不能将 NSSpeechsynthesier 的 class 方法 availableVoices 桥接到 Swift 字符串数组?
Why can't NSSpeechsynthesier's class method availableVoices be bridged to a Swift array of strings?
在 Apple 的 Working with Cocoa Frameworks 中,它看起来好像 Foundation 和 Swift Foundation 框架通过桥接一起工作。但是,我注意到在尝试使用 NSSpeechSynthesizer 的 class 方法 availableVoices() 时,它允许我接收到返回的 NSString 数组而不是 Strings.
编译并运行得很好:
let voices = NSSpeechSynthesizer.availableVoices as [NSString]
print(voices)
然而这不会编译:
let voicesTwo = NSSpeechSynthesizer.availableVoices as [String]
如果 the voiceName documentation 显示 VoiceName 是一个字符串 属性 为什么这不起作用?
我在 VoiceName 文档中看到术语 'rawValue' 那么推理是否与某种枚举有关?
看起来 NSSpeechSynthesizer.VoiceName
是 Enum
,rawValue
是 String
。这与 成为 字符串不同。
尝试使用
NSSpeechSynthesizer.availableVoices.map { [=10=].rawValue }
在 Apple 的 Working with Cocoa Frameworks 中,它看起来好像 Foundation 和 Swift Foundation 框架通过桥接一起工作。但是,我注意到在尝试使用 NSSpeechSynthesizer 的 class 方法 availableVoices() 时,它允许我接收到返回的 NSString 数组而不是 Strings.
编译并运行得很好:
let voices = NSSpeechSynthesizer.availableVoices as [NSString]
print(voices)
然而这不会编译:
let voicesTwo = NSSpeechSynthesizer.availableVoices as [String]
如果 the voiceName documentation 显示 VoiceName 是一个字符串 属性 为什么这不起作用?
我在 VoiceName 文档中看到术语 'rawValue' 那么推理是否与某种枚举有关?
看起来 NSSpeechSynthesizer.VoiceName
是 Enum
,rawValue
是 String
。这与 成为 字符串不同。
尝试使用
NSSpeechSynthesizer.availableVoices.map { [=10=].rawValue }