1. ホーム
  2. ios

[解決済み] Swiftで辞書から特定のインデックスにあるキーを取得する方法は?

2022-06-20 04:37:44

質問

私は Dictionary で、特定のインデックスでキーを取得したいと思います。

var myDict : Dictionary<String,MyClass> = Dictionary<String,MyClass>()

キーに対して反復処理を行い、ログを取ることができることは知っています

for key in myDict.keys{

    NSLog("key = \(key)")

}

しかし,不思議なことに,このようなことはできません。

var key : String = myDict.keys[0]

なぜ?

どのように解決するのですか?

それは keys が返す LazyMapCollection<[Key : Value], Key> を返すが、これは Int . これを処理する一つの方法は、辞書の startIndex を添え字にしたい整数分進めることです。

let intIndex = 1 // where intIndex < myDictionary.count
let index = myDictionary.index(myDictionary.startIndex, offsetBy: intIndex)
myDictionary.keys[index]

もう一つの可能な解決策は、配列を初期化して keys を入力として配列を初期化し、その結果、整数の添え字を使用することができます。

let firstKey = Array(myDictionary.keys)[0] // or .first

辞書は本質的に順番を持たないので、与えられたインデックスのキーが常に同じであることを期待しないようにしましょう。