1

この関数のプロトタイプを使用して、SiriKit に語彙を追加したいと考えています。Apple のドキュメントには、次のサンプル コードが示されています。

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

ドキュメントによると、のNSOrderedSet型を使用する必要がありますself.sortedWorkoutNames()

それを宣言して配列で設定する方法はStrings

編集: コンテキスト プロジェクトについては、Siri でインテントを使用しています。ここでの目標は、「Benchpress」や「Chicken」などの特定の単語を使用して、すでに実装されていて魅力的に機能する INStartWorkoutIntent でワークアウト アプリを開始することです。

4

1 に答える 1

4

SiriKit の Apple のサンプル コードを見ると、その関数sortedWorkoutNames()NSOrderedSet. workoutNamesObjective-C バージョンのの型を見てください。

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)
于 2017-04-05T11:06:14.007 に答える