gpt4 book ai didi

ios - Swift 3 - 如何声明 NSOrderedSet 以使用 setVocabularyStrings?

转载 作者:搜寻专家 更新时间:2023-11-01 06:34:23 27 4
gpt4 key购买 nike

我想使用 this向 SiriKit 添加词汇的函数原型(prototype)。 Apple 的文档显示了以下示例代码:

let workoutNames = self.sortedWorkoutNames()
let vocabulary = INVocabulary.shared()
vocabulary.setVocabularyStrings(workoutNames, of: .workoutActivityName)

根据documentation ,我需要为 self.sortedWorkoutNames() 使用 NSOrderedSet 类型。

如何用字符串数组来声明和设置它?

编辑:关于上下文项目,我将 Intents 与 Siri 结合使用。这里的目标是使用特定的词,如“Benchpress”或“Chicken”,只是为了启动我的锻炼应用程序,并且已经实现了 INStartWorkoutIntent 并且工作得很好。

最佳答案

如果您查看 Apple 的 SiriKit 示例代码,您会发现它们的函数 sortedWorkoutNames() 返回一个 NSOrderedSet。查看Objective-C版本中workoutNames的类型:

NSOrderedSet* workoutNames = [self sortedWorkoutNames];

在 Swift 中会是

let workoutNames: NSOrderedSet = self.sortedWorkoutNames()

如果您有一个要传递给 INVocabulary.setVocabularyStrings(_:of:) 的数组,则需要将其转换为有序集合。正如@larme 在他的评论中所说,NSOrderedSet 有一个将数组作为输入的初始化程序。

您的代码可能如下所示:

let myVocab = ["Benchpress", "Squats", "Deadlift"]
let myVocabSet = NSOrderedSet(array: myVocab) //Convert myVocab to an NSOrderedSet

let vocabulary = INVocabulary.shared()
vocabulary.setVocabularyStrings(myVocabSet, of: .workoutActivityName)

关于ios - Swift 3 - 如何声明 NSOrderedSet 以使用 setVocabularyStrings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228290/

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