gpt4 book ai didi

swift - 在 Swift 中使用键值编程 (KVP)

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

在带有 Cocoa 的 Objective-C 中,通过使用键值编程 (KVP),无需显式循环即可完成许多任务。例如,我可以用一行代码找到数组中的最大数:

NSNumber * max = [numbers valueForKeyPath:@"@max.intValue"];

我怎样才能用 swift 做同样的事情?数组似乎不支持 valueForKeyPath 方法。

最佳答案

该数组实际上会响应 valueForKeyPath 函数 - 您只需将数组转换为 AnyObject,这样编译器就不会报错。如下:

var max = (numbers as AnyObject).valueForKeyPath("@max.self") as Double

甚至,对于对象的联合:

(labels as AnyObject).valueForKeyPath("@unionOfObjects.text")

如果上面的 labels 是标签的集合,上面的代码将返回每个标签的 text 属性的所有字符串的数组。

它也等同于:

(labels as AnyObject).valueForKey("text")

...就像在 Objective-C 中一样:)

关于swift - 在 Swift 中使用键值编程 (KVP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039891/

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