Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用单个数组元素为导致cpu死亡的值构建swift字典_Swift - Fatal编程技术网

使用单个数组元素为导致cpu死亡的值构建swift字典

使用单个数组元素为导致cpu死亡的值构建swift字典,swift,Swift,以下是导致我的cpu死亡和程序冻结 var animals = ["B":["Bear", "Black Swan", "Buffalo"], "C": ["Camel", "Cockatoo"], "D": ["Dog", "Donkey"], "E": ["Emu"], "G": ["Giraffe", "Greater Rhea"], "H": ["Hippopotamus", "Horse"], "K": ["Koala"], "L": ["Lion", "Llama"], "M": [

以下是导致我的cpu死亡和程序冻结

var animals = ["B":["Bear", "Black Swan", "Buffalo"], "C": ["Camel", "Cockatoo"], "D": ["Dog", "Donkey"], "E": ["Emu"], "G": ["Giraffe", "Greater Rhea"], "H": ["Hippopotamus", "Horse"], "K": ["Koala"], "L": ["Lion", "Llama"], "M": ["Manatus", "Meerkat"], "P": ["Panda", "Peacock", "Pig", "Platypus", "Polar Bear"], "R": ["Rhinoceros"], "S": ["Seagull"], "T": ["Tasmania Devil"], "W": ["Whale", "Whale Shark", "Wombat"]]
从与单个动物相关的关键元素中去掉数组定义确实很好,但是,我不知道发生了什么

var animals = ["B":["Bear", "Black Swan", "Buffalo"], "C": ["Camel", "Cockatoo"], "D": ["Dog", "Donkey"], "E": "Emu", "G": ["Giraffe", "Greater Rhea"], "H": ["Hippopotamus", "Horse"], "K": "Koala", "L": ["Lion", "Llama"], "M": ["Manatus", "Meerkat"], "P": ["Panda", "Peacock", "Pig", "Platypus", "Polar Bear"], "R": "Rhinoceros", "S": "Seagull", "T": ["Tasmania Devil"], "W": ["Whale", "Whale Shark", "Wombat"]]

可能需要在操场上尝试上述代码以查看效果。

告诉它类型是什么–有太多的可能性,它正在挣扎:

var animals: [String:[String]] = [
    "B": ["Bear", "Black Swan", "Buffalo"], "C": ["Camel", "Cockatoo"], "D": ["Dog", "Donkey"], "E": ["Emu"],"G": ["Giraffe", "Greater Rhea"], 
    "H": ["Hippopotamus", "Horse"], "K": ["Koala"], "L": ["Lion", "Llama"], "M": ["Manatus", "Meerkat"], "P": ["Panda", "Peacock", "Pig", "Platypus", "Polar Bear"], 
    "R": ["Rhinoceros"], "S": ["Seagull"], "T": ["Tasmania Devil"], "W": ["Whale", "Whale Shark", "Wombat"]]
问题是,它可能是一个
[字符:[String]]
,一个
[NSString:[NSString]]]
,一个
[String:[AnyObject]]]
,一个
[String:NSArray]
,一个
NSDictionary
,等等。这些组合会爆炸,可怜的编译器也会爆炸

当您不可避免地输入错误,将其中一个值设置为字符串而不是字符串数组,并且Swift决定
AnyObject
所有内容时,这也会对您有所帮助


p、 美国。如果你想问问题,总会有鹌鹑。

回答你的问题吗?可能是的,但由于类型不同,相关案例更复杂。谢谢你的空速,没有得到你的p.s。?。这是一个建议,总是定义类型,不要那么聪明,还是只针对我的情况,因为它可以有多种选择。p.s.是一个笑话,我注意到你遗漏了一个Q动物:)我的建议是只在需要时指定类型(解决歧义,无论是为了性能还是正确的逻辑,这是您需要做的主要时间)。除此之外,类型推断是首选,因为它可以减少混乱。但令人烦恼的是,NS类型在转换为
任何对象时非常随意,因此有时使用文本是一个好主意–我希望不是这样,并希望在以后的Swift版本中会有所改变。