gpt4 book ai didi

IOS/objective-C/ swift /语音 : Specify Locale when declaring SFSpeech Recognizer variable

转载 作者:行者123 更新时间:2023-11-28 23:48:12 27 4
gpt4 key购买 nike

我正在尝试将我刚刚学习的一些 Swift 翻译成 Objective-C 用于语音项目。

Swift 显然允许您在声明变量时指定 speechRecognizer 的语言环境,如下所示:

private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en-US"))

在 Objective-C 中可以这样做吗?现在我在接口(interface)中声明了一个变量:

SFSpeechRecognizer *speechRecognizer;

然后设置语言环境:

speechRecognizer = [[SFSpeechRecognizer alloc] initWithLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-US"]];

理想情况下,我想在声明的开头就这样做,但我不清楚 Swift 和 Objective-C 真正在做什么之间的区别。

感谢您的任何建议或见解。

最佳答案

想想按以下顺序构建的 Swift 调用:

// Create a Locale object for US English
let locale = Locale.init(identifier: "en-US")
// Create a speech recognizer object for US English
let speechRecognizer = SFSpeechRecognizer(locale: locale)

然后将 Swift 代码与 Objective-C 进行比较:

// Here you are create an uninitialized variable of type SFSpeechRecognizer
// this will then hold the SFSpeechRecognizer when you initialize it in the next line
SFSpeechRecognizer *speechRecognizer;
// This is accomplishing the same logic as the above Swift call
speechRecognizer = [[SFSpeechRecognizer alloc] initWithLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-US"]];

如果您希望将它变成一行,您可以重写 objective-c 调用,使其看起来像这样:

SFSpeechRecognizer *speechRecognizer = [[SFSpeechRecognizer alloc] initWithLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-US"]];

这两种方法都没有错,只是 Swift 可以推断变量类型,所以在启动语音识别器之前不需要创建空变量。 Objective-C 可以NOT 推断变量类型,因此该命令可能被拆分只是为了让行更短一些。

关于IOS/objective-C/ swift /语音 : Specify Locale when declaring SFSpeech Recognizer variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52261156/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com