如何在Swift 3中声明NSMapTable
?为什么Apple的这个例子不起作用?
let activeLines = NSMapTable.strongToStrongObjectsMapTable()
Xcode建议改为:
let activeLines = NSMapTable.strongToStrongObjects()
但它仍然不起作用。
我需要将此示例转换为Swift 3
答案 0 :(得分:2)
NSMapTable.strongToStrongObjects()
将失败并显示错误:
error: generic parameter 'KeyType' could not be inferred
NSMapTable.strongToStrongObjects()
^
NSMapTable的类声明是:
open class NSMapTable<KeyType : AnyObject, ObjectType : AnyObject> : NSObject, NSCopying, NSCoding, NSFastEnumeration
您需要在声明中指定地图表的键和对象类型:
NSMapTable<NSObject, NSObject>.strongToStrongObjects()