-2

こんにちは、辞書に値を追加中にエラーが発生しました。と を使用Xcode 7してSwift 2います。 エラー メッセージ:[String: String?]型の値を予期される引数の型に 変換できません[String: String!]

宣言:

var arrVoiceLanguages: [Dictionary<String, String!>] = []

以下は私の機能です

  for voice in AVSpeechSynthesisVoice.speechVoices() {
        let voiceLanguageCode = (voice as AVSpeechSynthesisVoice).language

        let languageName = NSLocale.currentLocale().displayNameForKey(NSLocaleIdentifier, value: voiceLanguageCode)

        let dictionary = ["languageName": languageName, "languageCode": voiceLanguageCode]

        arrVoiceLanguages.append(dictionary)
    }

どんな助けでも大歓迎です。

人々がこの質問に反対票を投じる理由がわかりません。

4

2 に答える 2

2

おそらく、あなたの arrVoiceLanguages 変数は [String:String!] 型を宣言し、NSLocale.currentLocale().displayNameForKey() 関数の戻り値の型は String? です。

これを試すことができます(アンラップ値の最後に ! を追加しました)。

let languageName = NSLocale.currentLocale().displayNameForKey(NSLocaleIdentifier, value: voiceLanguageCode)!
于 2015-10-16T07:02:16.623 に答える