Avatar
omochimetaru 9/8/2017 7:16 AM
DebugReflect - Debug dump support for Swift
7:16 AM
デバッグダンプ用のライブラリを作ったんだけど
7:18 AM
このような方法で、 https://github.com/omochi/DebugReflect/blob/master/Sources/DebugReflect/Util.swift#L25 Anyやconcrete protocolが保持している値が struct なのか class なのか判定できる事がわかったんで、 こうやってクラスに関して循環訪問するのをふせいでる https://github.com/omochi/DebugReflect/blob/master/Sources/DebugReflect/DebugReflectWriter.swift#L21-L27
DebugReflect - Debug dump support for Swift
DebugReflect - Debug dump support for Swift
7:20 AM
Any や Concrete Protocolは内部的には参照型のポインタ共有か、値型を保持するヒープ上のボックスへのポインタだから
7:20 AM
常に as AnyObject は 成功してしまうんだけど
7:20 AM
type (of: any) is AnyObject.Type だと判定できるのだ