我將Swift代碼從Xcode 8.3.1降級到Xcode 7.3.1。swift on array.sort - 表達式太複雜,無法在合理的時間內解決;考慮將表達式拆分爲不同的子表達式
Xcode 7.3.1的Swift編譯器提高了 Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions
指向線zeroParameterAndPaths.sort {
。代碼在Xcode 8.3.1中是可以的。
怎麼了,怎麼解決?
class NewConnectingSegmentZeroParameterAndPath {
let step : Int; // 0 = main, 1 = first outline, 2 = second outline
let parameter : CGFloat;
init(step: Int, parameter: CGFloat) {
self.step = step;
self.parameter = parameter;
}
}
var zeroParameterAndPaths : [NewConnectingSegmentZeroParameterAndPath] = [];
// ... some zeroParameterAndPaths .appendContentsOf calls
zeroParameterAndPaths.sort {
return $0.parameter < $1.parameter
|| ($0.parameter == $1.parameter
&& ($0.step == 1 || ($0.step == 0 && $1.step == 2))
)
};
仍抱怨。 – alik
對於我而言,並不完全清楚你想要的排序順序是什麼,但是(除非我錯了),閉包返回'true',用於'* ='的*相同*參數。這是不允許的。 - (與你當前的問題無關,但我只想提及它) –
@MartinR編譯器問題不是人們應該避免這樣的表達式的原因xD – Alexander