- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在研究 Swift 中的一些内省(introspection),如果您想在可打印版本中获取对象的类,这些似乎是最好的选择。 (在 beta 6.0 中引入)。
_stdlib_getTypeName(someClass)
_stdlib_getDemangledTypeName(someClass) // A slightly cleaner version
我希望找到其他内省(introspection)方法,但不幸的是,单击这些方法的命令会将我带到 Swift header ,但它们并未在那里声明。
我的另一个选择是键入 _stdlib
并等待自动完成或控制空间来查看我的选项。不幸的是,这些方法都没有自动完成。
是否有声明这些和其他 stdlib 函数的文件,或者是否有这些方法的文档?
最佳答案
我通过来自 realm here 的提示和技巧博客文章找到了问题的答案。 -- 特别是 JP Simard 的帖子。
按照这些思路查看其他方法的最佳方式是转到您的终端并键入:
cd `xcode-select -p`/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx
然后输入以下内容:
nm -a libswiftCore.dylib | grep "T _swift_stdlib"
这将为您提供所有可用函数的读数,如下所示:
00000000001a43c0 T _swift_stdlib_NSObject_isEqual
00000000001a4490 T _swift_stdlib_NSStringHasPrefixNFD
00000000001a44f0 T _swift_stdlib_NSStringHasSuffixNFD
00000000001a4450 T _swift_stdlib_NSStringNFDHashValue
00000000001a2650 T _swift_stdlib_atomicCompareExchangeStrongPtr
00000000001a2670 T _swift_stdlib_atomicCompareExchangeStrongUInt32
00000000001a2690 T _swift_stdlib_atomicCompareExchangeStrongUInt64
00000000001a2700 T _swift_stdlib_atomicFetchAddUInt32
00000000001a2710 T _swift_stdlib_atomicFetchAddUInt64
00000000001a26f0 T _swift_stdlib_atomicLoadPtr
00000000001a26d0 T _swift_stdlib_atomicLoadUInt32
00000000001a26e0 T _swift_stdlib_atomicLoadUInt64
00000000001a26b0 T _swift_stdlib_atomicStoreUInt32
00000000001a26c0 T _swift_stdlib_atomicStoreUInt64
00000000001a4410 T _swift_stdlib_compareNSStringDeterministicUnicodeCollation
000000000017c560 T _swift_stdlib_conformsToProtocol
00000000001a5a80 T _swift_stdlib_demangleName
000000000017c8e0 T _swift_stdlib_dynamicCastToExistential1
000000000017c6f0 T _swift_stdlib_dynamicCastToExistential1Unconditional
00000000001a5910 T _swift_stdlib_getTypeName
我还没有找到任何文档,但是这些函数名称中的很多都具有很好的解释性,并且通过尝试它们总能发现很多东西!
关于swift - `_stdlib_getTypeName()` 和 `_stdlib_getDemangledTypeName()` 在哪里声明? -- swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27912078/
我正在研究 Swift 中的一些内省(introspection),如果您想在可打印版本中获取对象的类,这些似乎是最好的选择。 (在 beta 6.0 中引入)。 _stdlib_getTypeNam
最新版本的 Swift 2.2 删除了 _stdlib_getDemangledTypeName()。 我有哪些替代方案? 我目前在这样的调试消息中使用: let debugStr = "\(_std
我是一名优秀的程序员,十分优秀!