首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此语句转换为更好的性能

如何将此语句转换为更好的性能
EN

Stack Overflow用户
提问于 2017-08-15 08:42:20
回答 1查看 56关注 0票数 0

我在构建(索引需要5-7分钟)时有一个非常糟糕的性能,因为我在代码中添加了以下行。

代码语言:javascript
复制
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是对密钥的替换,当然,它具有不同的键值,而值与上面的值是相同的。

请帮我处理这个。谢谢你的回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 09:14:57

除了是一种糟糕的代码实践之外,您还编写了一段代码,由于大量的文字嵌套,Swift编译器将处理这些代码。(在其他代码中也会发生。)更简单的解决方案:

因为您重复使用相同的值:

代码语言:javascript
复制
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]]

会做好这份工作。

如果允许的话,一些编码注意事项:

  • 使用var来重复值,这样做不仅使编译器高兴,而且在一般情况下也更快(特别是如果使用a.b.c.d()将产生调用/返回。)
  • 不要在控件之间传递泛型结构,在读取/下载时,创建类/struct并传递它们。
  • 最好动态添加到dict中,如果您必须读取数据,例如从磁盘/网络中读取数据,那么就很容易了。

希望这能帮上忙。

另一项建议:

以这种方式传递到类型:

类型Dict =[String:String: Any]]

所以你可以写:

代码语言:javascript
复制
    var valuesToPassToDetailViewController2 = Dict()

反测试:

代码语言:javascript
复制
    var valuesToPassToDetailViewController = [[String:[String: Any]]]()
    var valuesToPassToDetailViewController2 = Dict()

    valuesToPassToDetailViewController2 = valuesToPassToDetailViewController
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45689425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档