gpt4 book ai didi

Swift 类作为 objc 运行时的参数

转载 作者:可可西里 更新时间:2023-11-01 00:53:56 25 4
gpt4 key购买 nike

当使用 objc 运行时进行 Swift 自省(introspection)时,我注意到以下是可能的:

object_setClass(anObject, Birdy.classForCoder());

. . .但不是

object_setClass(anObject, Birdy);

Birdy.classForCoder() 和 Birdy 都是 AnyClass 的实例,那么为什么只有前者会传播到 objc 运行时?

最佳答案

使用Birdy.self 获取AnyClass 元类型。

例子:

object_setClass(anObject, Birdy.self)

如果你计划让你的 Swift 类在 Obj-C 中可用,你应该用 @objc 注解来标记它们:

@objc class Birdy
{
func tweet()
{
println("Tweet tweet! #swift")
}
}

关于Swift 类作为 objc 运行时的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24061578/

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