LoginSignup
1
1

More than 5 years have passed since last update.

Swiftで条件繋げすぎるとXcodeがエラー吐く

Posted at
var nullable0: String?
var nullable1: String?
var nullable2: String?
var nullable3: String?
var nullable4: String?
var nullable5: String?
var nullable6: String?

guard nullable0 == nil &&
    nullable1 == nil &&
    nullable2 == nil &&
    nullable3 == nil &&
    nullable4 == nil &&
    nullable5 == nil &&
    nullable6 == nil && else {
        return false
}
return true

(SonarQubeで「条件はなるべくまとめろ」的なチェックもありこういうコードになったのだと思います)
条件を7つ以上繋げると、
Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions
というエラーが出るようです。

直し方は各々好きなように(笑)して頂ければ良いのですが、今回は下記のように修正してみました。

var nullable0: String?
var nullable1: String?
var nullable2: String?
var nullable3: String?
var nullable4: String?
var nullable5: String?
var nullable6: String?

// 全てnilの場合のみtrue
let requiredStrings = [
    nullable0,
    nullable1,
    nullable2,
    nullable3,
    nullable4,
    nullable5,
    nullable6,
]
guard let _ = requiredStrings.indexOf({ $0 != nil }) else {
    return true
}
return false
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1