同じ静的変数を持つ複数のクラスがあります。実行時に各クラスの currentInstance を取得します(AnyObject?)。次に、 type(of: instance) メソッドを使用してインスタンスからクラスを取得して、静的変数にアクセスしようとしています。しかし、静的変数を取得しようとすると、エラーがスローされます - Value of type 'AnyObject.Type' has no member . ここに疑似コードがあります。
public extension Reader {
open static var funcDictionary = [String: readerFuncs]() //ReaderFuncs is an enum of functions
}
public extension Library {
open static var funcDictionary = [String: libraryFuncs]()
}
public extension ReaderMenu {
open static var funcDictionary = [String: readerMenuFuncs]()
}
import Foundation
open class TestClass: NSObject {
open func executeFunction(currentInstance: AnyObject) { // I get current instance at runtime. And I have checked that I get the correct value
var count = type(of: currentInstance).functionDictionary.count // Error: Value of type 'AnyObject.Type' has no member funcDictionary
}
クラスのインスタンスしか利用できない場合に静的変数にアクセスする方法を知りたいです。私も .classforCoder() を使用しましたが、機能しません。すべてのファイルのターゲット メンバーシップも同じです。