小编mar*_*osm的帖子

swift字典填充问题:类型'AnyObject'不符合协议'NSCopying'

我正在尝试将下一个代码从Objetive-C迁移到Swift:

   NSArray *voices = [AVSpeechSynthesisVoice speechVoices];
    NSArray *languages = [voices valueForKey:@"language"];

    NSLocale *currentLocale = [NSLocale autoupdatingCurrentLocale];
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
    for (NSString *code in languages)
    {
        dictionary[code] = [currentLocale displayNameForKey:NSLocaleIdentifier value:code];
    }
Run Code Online (Sandbox Code Playgroud)

我做了以下事情:

var voices:NSArray = AVSpeechSynthesisVoice.speechVoices()
var languages:NSArray=voices.valueForKey("language") as NSArray

var currentLocale:NSLocale=NSLocale.autoupdatingCurrentLocale()
var dictionary:NSMutableDictionary=NSMutableDictionary()

for code in languages {
   var name=currentLocale.displayNameForKey(NSLocaleIdentifier, value: code)
   dictionary[code]=name
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:类型'AnyObject'不符合协议'NSCopying'字典[code] = name

我不知道如何声明字典对象,做一些像国家代码字符串作为键和小描述的数组一样简单的事情.喜欢

字典["es-ES"] = ["西班牙语"]字典["en-US"] = ["美式英语"]

arrays dictionary declaration objective-c swift

1
推荐指数
1
解决办法
2177
查看次数

标签 统计

arrays ×1

declaration ×1

dictionary ×1

objective-c ×1

swift ×1