gpt4 book ai didi

swift - 如何通过 swift 初始化一个值为 block 的 NSMapTable

转载 作者:行者123 更新时间:2023-11-28 11:16:40 28 4
gpt4 key购买 nike

当我使用NSMapTable时,一个麻烦让我不开心,我这样做了

[self.map setObject:block forKey:key]

在 obj-c 中是可以的,但是当我这样做的时候

map.setObject(block as!AnyObject, forKey: key)

在 Swift 中,我得到一个错误

Could not cast value of type '() -> ()' (0x15d9a604) to 'Swift.AnyObject' (0x15d7335c)

在使用 NSMapTable 时如何修复它?我不想使用 Dictionay ,因为 key 很复杂。

最佳答案

block 不是对象。将您的 block 包装在一个类中,然后将您的 block 作为属性分配给该类。

class MyClass {
let block: Void -> Void
}

[self.map setObject:myClass forKey:key]

关于swift - 如何通过 swift 初始化一个值为 block 的 NSMapTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31289421/

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