当我使用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/