はここconsAry
のタイプは[NSLayoutConstraint?]
は、それがタイプNSLayoutConstraint
のoptional
オブジェクトが含まれており、ループのために明示的NSLayoutConstraint
にそのタイプを言っているのでnon-optional
を意味を意味しているので、それを削除し、ループ内の任意の値または使用をアンラップのいずれかループのためのflatMap
のconsAry
。
オプション1:consAry
の使用
flatMap
:
for constraint in consAry {
if ((i > 2) && (screenHeight <= 568)){
padding = 10
}
if let currentConstraint = constraint {
currentConstraint.constant = padding
}
i = i + 1
}
オプション3許可すれば使用してオプションラッピング:forループ
for constraint in consAry {
if ((i > 2) && (screenHeight <= 568)){
padding = 10
}
constraint?.constant = padding
i = i + 1
}
オプション2で明示的に指定を削除してください
for constraint in consAry.flatMap ({ $0 }) { if ((i > 2) && (screenHeight <= 568)){ padding = 10 } constraint.constant = padding i = i + 1 }
注:ここではインデックス作成にi
を使用しています。代わりに、enumerated()
forループを使用してください。
for (i, constraint) in consAry.flatMap ({ $0 }).enumerated() {
if ((i > 2) && (screenHeight <= 568)){
padding = 10
}
constraint.constant = padding
}
最後のコード - の値に割り当てることができないためにエラーを取得:「i」は、ループの各反復自動的にその値が変化における必要はありません定数 –
@ThripthiHaridasは今、その行を削除してみましょうです。また、 'var i:Int = Int(0)'行を削除する必要はありません。 –
@Nirav D返信ありがとうございます。私の時間を救った –