Ios 如何在swift中将对象设置为NSMutableDictionary中的键
我需要在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[
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”<代码>。