声明" NSMapTable StrongObject"在Swift 3中

时间:2016-10-06 18:19:05

标签: ios swift swift3 foundation

如何在Swift 3中声明NSMapTable?为什么Apple的这个例子不起作用?

let activeLines = NSMapTable.strongToStrongObjectsMapTable()

Xcode建议改为:

let activeLines = NSMapTable.strongToStrongObjects()

但它仍然不起作用。

我需要将此示例转换为Swift 3

TThread.ForceQueue()

1 个答案:

答案 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()