我在构建(索引需要5-7分钟)时有一个非常糟糕的性能,因为我在代码中添加了以下行。
var valuesToPassToDetailViewController = [[String:[String: Any]]]()
var dict = [String:[String: Any]]()
dict = [title as! String:["title":title as! String, "valueD":postValue["value"] ?? "", "valueD":postValue["value"] ?? "","valueD":postValue["value"] ?? "","valueD": postValue["value"] ?? "","valueD": postValue["value"] ?? "","valueD":postValue["value"] ?? "","valueD":postValue["value"] ?? "" ,"valueD": postValue["value"] ?? "", "valueD": postValue["value"] ?? ""]]
self.valuesToPassToDetailViewController.append(dict)请记住,valueD是对密钥的替换,当然,它具有不同的键值,而值与上面的值是相同的。
请帮我处理这个。谢谢你的回复。
发布于 2017-08-15 09:14:57
除了是一种糟糕的代码实践之外,您还编写了一段代码,由于大量的文字嵌套,Swift编译器将处理这些代码。(在其他代码中也会发生。)更简单的解决方案:
因为您重复使用相同的值:
let nonNullValue = postValue["value"] ?? ""
dict = [title as! String : ["title":title,
"valueD": nonNullValue,
"valueD": nonNullValue,
"valueD": nonNullValue,
"valueD": nonNullValue,
"valueD": nonNullValue,
"valueD": nonNullValue,
"valueD": nonNullValue ,
"valueD": nonNullValue,
"valueD": nonNullValue]]会做好这份工作。
如果允许的话,一些编码注意事项:
希望这能帮上忙。
另一项建议:
以这种方式传递到类型:
类型Dict =[String:String: Any]]
所以你可以写:
var valuesToPassToDetailViewController2 = Dict()反测试:
var valuesToPassToDetailViewController = [[String:[String: Any]]]()
var valuesToPassToDetailViewController2 = Dict()
valuesToPassToDetailViewController2 = valuesToPassToDetailViewControllerhttps://stackoverflow.com/questions/45689425
复制相似问题