gpt4 book ai didi

ios - 使用 StaticString 在 Swift 中调配

转载 作者:可可西里 更新时间:2023-11-01 02:18:34 25 4
gpt4 key购买 nike

我正在尝试调配一个包含 StaticString 参数的 Swift 函数。

这是我尝试过的:

let method = class_getClassMethod(self, original1)

class ABC {
public static func updateABC(context: Int, str: StaticString) {
}
}

但是,这不起作用,如果我将 str 的类型更改为 String,我们就可以正确地调配,任何有机会调配带有 StaticString 类型参数的函数的人都可以帮忙吗?

谢谢

最佳答案

StaticString 是一种值类型,因此它没有 Objective-C 表示。因此,它——以及你在其中使用它的声明——不会暴露给 Objective-C 代码,也不会在 Objective-C 运行时注册。另一方面,String 是 Objective-C 兼容的(它连接到 NSString),因此声明是 Objective-C 兼容的。

如果您要调配一个方法,您需要用dynamic 标记它,让编译器知道它应该始终通过 Objective-C 运行时路由调用,即使是在优化代码中也是如此。如果您的函数与 Objective-C 不兼容,则使用 dynamic 标记函数也会导致编译器发出错误,这可以帮助您诊断问题。

关于ios - 使用 StaticString 在 Swift 中调配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33747063/

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