Generic型にstatic letは定義できない


class Class {
   static let value: Int = 1 //ERROR: Static stored properties not supported in generic types
}

たとえば、上記のようなコードに対してはコンパイルエラー Static stored properties not supported in generic types が吐き出される。

これは、Generic型の場合、特殊化された型ごとに stored property の値が確保されるため、こうしてできあがった型をまたいでの定数定義ができない、ということのようだ。

What is a good alternative for static stored properties of generic types in swift? – Stack Overflow

static var ... とすることで解決はするが、値へのアクセスごとに取得処理が実行されるので注意。

上記の StackOverflow 回答には、global dictionary を用いた解決法が紹介されている。

コメントを残す