私は、アプリケーション全体で使用するタプルタイプをエイリアスしようとしています。私はこのように最初のエイリアシングを行います:関連付けられたタイプを使用してタプルを作成する
associatedtype JSONReplacementValue = (key: String, value: AnyObject?)
と思われます。これをassociatedtype
なしで使用すると、すべて正常に動作します。しかし、私はそれらを別名たら、私は次の2つの場所でエラーを取得:
var replacementValues: [JSONReplacementValue] = []
if let key = key {
replacementValues.append((key: key, value: value))
}
は、これは私にCannot invoke 'append' with an argument list of type '(key: String, value: AnyObject?)
に言って、.append
行にエラーが発生します。私はJSONReplacementValue(key: key, value: value)
のようなものに付けるものを置き換えようとしましたが、それは私にエラーを与えます。'Self.JSONReplacementValue' cannot be constructed because it has no accessible initializers
これは私が回避できない最初のエラーです。第二は、このコードで起こる:Value of type 'Self.JSONReplacementValue' has no member 'key'
:
for replacementValue in values {
json[replacementValue.key] = replacementValue.value
}
私はreplacementValue.key
にアクセスしようとすると、これは私にエラーを与える
(値がそうvalues: [JSONReplacementValue]
のようなパラメータとして定義されJSONReplacementValueの配列です)。この1つ私はそれを解決する方法を知らない。
タプルをassociatedtype
にすることはできますか?もしそうなら、私はここで間違って何をしていますか?