以下行给出了编译器错误“无法推断出通用参数'KeyType'”:
fileprivate var delegatesMap = NSMapTable.strongToWeakObjects()
我试着更明确地说:
fileprivate var delegatesMap:MapTable<Key,Value> = NSMapTable.strongToWeakObjects()
但是我接着Xcode不承认“Key”
我该如何解决这个问题?
编辑:我希望我的Key是String类型,我的值是MenuActionDelegate类型(类协议)
答案 0 :(得分:0)
你可能需要写这样的东西:
this.state = {}
通用参数fileprivate var delegatesMap = NSMapTable<NSString, MenuActionDelegate>.strongToWeakObjects()
和KeyType
必须为ValueType
,因此您无法直接将AnyObject
放在那里,也需要一些显式投射String
。
值类型as NSString
需要MenuActionDelegate
- 协议。
否则你可能需要写这样的东西:
@objc
并将其用作:
var delegatesMap = NSMapTable<NSString, AnyObject>.strongToWeakObjects()