This question already has an answer here:
Declare “NSMapTable StrongObject” in Swift 3
(1个答案)
三年前关闭。
下一行给出编译器错误“无法推断泛型参数'KeyType'”:
我试着更明确地说:
但Xcode无法识别“Key”
我该怎么解决这个问题?
编辑:我希望我的键是String类型,我的值是MenuActionDelegate类型(类协议)
一般参数
值类型需要一个
或者你可能需要这样写:
并将其用作:
(1个答案)
三年前关闭。
下一行给出编译器错误“无法推断泛型参数'KeyType'”:
fileprivate var delegatesMap = NSMapTable.strongToWeakObjects()
我试着更明确地说:
fileprivate var delegatesMap:MapTable<Key,Value> = NSMapTable.strongToWeakObjects()
但Xcode无法识别“Key”
我该怎么解决这个问题?
编辑:我希望我的键是String类型,我的值是MenuActionDelegate类型(类协议)
最佳答案
你可能需要这样写:
fileprivate var delegatesMap = NSMapTable<NSString, MenuActionDelegate>.strongToWeakObjects()
一般参数
KeyType
和ValueType
需要AnyObject
,因此不能直接放在那里,还需要一些显式的castingString
。值类型需要一个
as NSString
-协议。或者你可能需要这样写:
var delegatesMap = NSMapTable<NSString, AnyObject>.strongToWeakObjects()
并将其用作:
let theDelegate = delegatesMap.object(forKey: "delegateName" as NSString) as! MenuActionDelegate
关于swift - NSMapTable“无法推断通用参数'KeyType'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39758735/
10-15 18:10