gpt4 book ai didi

swift - `_stdlib_getTypeName()` 和 `_stdlib_getDemangledTypeName()` 在哪里声明? -- swift

转载 作者:可可西里 更新时间:2023-10-31 23:56:35 24 4
gpt4 key购买 nike

我正在研究 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com