加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 如果条件失败,表达式太复杂

发布时间:2020-12-15 01:55:30 所属栏目:百科 来源:网络整理
导读:我有一个条件声明,声称“表达太复杂,无法在合理的时间内解决。如果在我的条件中有超过约5个包含语句,则该错误将失败。这似乎不是编译中应该发生的事情,因为语句不是那么复杂。这是其他人遇到的错误吗?除了分解我的条件还有解决办法吗? else if( contai
我有一个条件声明,声称“表达太复杂,无法在合理的时间内解决。如果在我的条件中有超过约5个包含语句,则该错误将失败。这似乎不是编译中应该发生的事情,因为语句不是那么复杂。这是其他人遇到的错误吗?除了分解我的条件还有解决办法吗?

else if(
                contains(JSONDict.keys.array,"id") &&
                contains(JSONDict.keys.array,"part_number") &&
                contains(JSONDict.keys.array,"sales_part_number") &&
                contains(JSONDict.keys.array,"include_in_search") &&
                contains(JSONDict.keys.array,"description") &&
                contains(JSONDict.keys.array,"brand") &&
                contains(JSONDict.keys.array,"product_group") &&
                contains(JSONDict.keys.array,"product_design") &&
                contains(JSONDict.keys.array,"material") &&
                contains(JSONDict.keys.array,"line") &&
                contains(JSONDict.keys.array,"unit_of_mass") &&
                contains(JSONDict.keys.array,"coating") &&
                contains(JSONDict.keys.array,"pcs_converstion") &&
                contains(JSONDict.keys.array,"appRim") &&
                contains(JSONDict.keys.array,"appSegment") &&
                contains(JSONDict.keys.array,"series") &&
                contains(JSONDict.keys.array,"product_application")
                ){

            }

解决方法

是的,这是一个已知的问题 – 另见 this answer。

解决方案是使用多行语句将逻辑表达式存储到变量中:

else {
    var logicalExpression = contains(JSONDict.keys.array,"id") &&
            contains(JSONDict.keys.array,"part_number") &&
            contains(JSONDict.keys.array,"sales_part_number") &&
            contains(JSONDict.keys.array,"include_in_search")
    logicalExpression = logicalExpression && contains(JSONDict.keys.array,"description") &&
            contains(JSONDict.keys.array,"brand") &&
            contains(JSONDict.keys.array,"product_group") &&
            contains(JSONDict.keys.array,"product_design")
    // ... etc.
    if logicalExpression {
    }
}

这种强大的语言有点奇怪,但这是一个(希望是暂时的)权衡。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读