gpt4 book ai didi

objective-c - 将复杂的 Objective-C 宏转换为 swift

转载 作者:行者123 更新时间:2023-11-30 10:02:49 28 4
gpt4 key购买 nike

我使用了一个名为 LinqToObjectiveC 的库在我的项目中,现在我想在 swift 文件中使用它。该库使用复杂的 Objective-C 宏,无法在 swift 中访问。我想知道如何将这个宏转换为 swift:

#define LINQKey(__key) (^id(id item){return [item valueForKey:@#__key];})

最佳答案

首先让我们解释一下该宏的作用。

它接受一个名为 __key 的参数,将其字符串化(@#)并返回一个将接受一个对象的闭包( block )作为参数并返回 item.valueForKey(key) 的结果。

我们无法将字符串化转换为 Swift,但是,即使在 Obj-C 中也不应该使用它。当我们可以拥有 LINQKey(@"myKey") 时,为什么还要拥有 LINQKey(myKey)

作为一个返回闭包的简单函数:

func LINQKey(key: String) -> (AnyObject! -> AnyObject!) {
return { (item: AnyObject!) in
return item.valueForKey(key)
}
}

关于objective-c - 将复杂的 Objective-C 宏转换为 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37508909/

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