声明“NSMapTable StrongObject”在Swift 3中 [英] Declare "NSMapTable StrongObject" in Swift 3

查看:159
本文介绍了声明“NSMapTable StrongObject”在Swift 3中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I declare an NSMapTable in Swift 3? Why doesn't this example from Apple work?

let activeLines = NSMapTable.strongToStrongObjectsMapTable()

Xcode建议更改为:

Xcode suggested change to:

let activeLines = NSMapTable.strongToStrongObjects()

但它仍然不起作用。

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

I need convert this example to 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的类声明是:

The class declaration of NSMapTable is:

open class NSMapTable<KeyType : AnyObject, ObjectType : AnyObject> : NSObject, NSCopying, NSCoding, NSFastEnumeration

您需要指定地图表的键和对象类型在其声明中:

You need to specify the key and object types of your map table in its declaration:

NSMapTable<NSObject, NSObject>.strongToStrongObjects()

这篇关于声明“NSMapTable StrongObject”在Swift 3中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆