如何在Swift 3中声明NSMapTable
?苹果公司的这个例子为什么不起作用?
let activeLines = NSMapTable.strongToStrongObjectsMapTable()
Xcode建议更改为:
let activeLines = NSMapTable.strongToStrongObjects()
但它仍然不起作用。
我需要将此示例转换为Swift 3
https://developer.apple.com/library/content/samplecode/TouchCanvas/Listings/TouchCanvas_CanvasView_swift.html
最佳答案
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()