- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想使用 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/
我想使用 this向 SiriKit 添加词汇的函数原型(prototype)。 Apple 的文档显示了以下示例代码: let workoutNames = self.sortedWorkoutNa
我是一名优秀的程序员,十分优秀!