2015-09-17 16 views
7

swift 1.2から2にアップグレードしました。配列を取得していません:遅延配列から配列を作成してください:Array( ...)とI「MyVariables.dictionary.keys.arrayは[indexPath.row]文字列は次のように」に変更する必要がありますこれは何配列は利用できません:配列(...)

MyVariables.selectedUser = MyVariables.dictionary.keys.array[indexPath.row] as String 

を修正する方法のまわりで私の先に包むように見えることはできませんか?

答えて

10

keysで返された遅延シーケンスのarrayプロパティは使用できなくなると言われています。スウィフト2では、アレイに怠惰なシーケンスを変換するために、初期化子を使用します。Swift1.2で

MyVariables.selectedUser = Array(MyVariables.dictionary.keys)[indexPath.row] as String 
+1

働きました! !!!ありがとうございます –

1

、辞書の値はLazyForwardCollection> .ARRAYプロパティを返す配列を持つタイプが返されます。

Swift2では、Arrayで配列(dict.values)を構築できるため、Dictionaryの値はLazyMapCollection < [Key:Value]、Value>を返し、.arrayプロパティは破棄されます。あなたはこれらの行に

を使用することができます。この場合

**配列=配列(!配列リテラル:myVariable変数.keys)しましょう

するvar selectedUser = [indexPath.row] **

関連する問題