gpt4 book ai didi

swift - 是否有与 GCC `__attribute__((constructor))` 等效的 Swift?

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:02 24 4
gpt4 key购买 nike

我在用纯 Swift 创建东西时遇到了问题。我正在尝试实现类似于 NSValueTransformer 的类注册表。

在 Objective-C 中,我将通过在子类的 load 类方法中调用 setValueTransformer:forName: 来确保 NSValueTransformer 子类已注册。这种方法在 Swift 中不起作用,因为运行时不会在 Swift 类上调用 load

我的下一个想法是找到 __attribute__((constructor)) 的 Swift 版本,但我的搜索一无所获。 Swift 是否提供类似于 __attribute__((constructor)) 的东西,或者是实现此目的的唯一方法是编写调用 Swift 函数的 C 函数?

最佳答案

如果您的类注册表包装在一个包中,那么您可以使用包的主要类来查找和注册转换器。如果没有,您可以使用 AppDelegate 的 app did finish launching 方法系列来完成。

无论哪种方式,您都需要搜索所有类(class)并注册您想要的类(class)。 Objective-C 有很好的 objc_getClassList() 来完成这个,对于 Swift 我发现了一个有趣的要点,将这个函数添加到 Swift 中:https://gist.github.com/bnickel/410a1bdc02f12fbd9b5e

关于swift - 是否有与 GCC `__attribute__((constructor))` 等效的 Swift?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31865872/

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