Ios 如何在swift中将对象设置为NSMutableDictionary中的键

Ios 如何在swift中将对象设置为NSMutableDictionary中的键,ios,swift,nsmutabledictionary,Ios,Swift,Nsmutabledictionary,我需要在NSMutableDictionary中将一个对象设置为键。我宣布我的字典是 var streamsDict : NSMutableDictionary = [:] 并将对象添加为 streamsDict[stream] = "Value" 但我得到以下错误,由于我的应用程序崩溃 Could not cast value of type 'OTStream' (0x100638590) to 'NSCopying' (0x19e0fb9e8) 我也试过了 streamsDict[

我需要在NSMutableDictionary中将一个对象设置为键。我宣布我的字典是

var streamsDict : NSMutableDictionary = [:]
并将对象添加为

 streamsDict[stream] = "Value"
但我得到以下错误,由于我的应用程序崩溃

Could not cast value of type 'OTStream' (0x100638590) to 'NSCopying' (0x19e0fb9e8)
我也试过了

streamsDict[stream as! NSCopying] = "Value"
但我又犯了错误

`Argument type 'OTStream' does not conform to expected type 'NSCopying'`

请建议

只有符合
NSCopying
的对象才能用作
NSMutableDictionary
中的键

如果要将
OTStream
对象用作字典中的密钥,则必须实现
NSCopying
协议


您可以找到
NSCopying
文档。

可能您不直接将对象存储在字典中,而是首先将其所有属性序列化到NSDictionary

您不能将任何内容用作字典中的键,并且您不想。。。你想用字典实现什么?你设置为键的流变量的类型是什么?@Wain:我有OTStream对象,我需要用一些值将它们保存在字典中。之后,我可以获取该词典的所有键数组,以便进一步执行任务。@HarshalBhavsar:这是OTStream的一个对象。如果您不想这样做,请解释为什么要使用词典库作为答案。但是我得到以下错误:代码>参数类型“OtSt流”不符合预期类型“nScVigIn”<代码>。