Когда вы делаете left += right
, он вызывает ту же функцию, которую вы определили.Другими словами, функция перегрузки вашего оператора += ( left: inout CGVector, right: CGVector)
будет вызывать себя всегда (бесконечная рекурсия).Вы делаете что-то вроде
func foo(String: bar) {
foo(bar)
}
Но просто заменив foo
на +=
, что не логично.Xcode только теперь выдает предупреждение , хотя это не ошибка, которая останавливает вас от компиляции.Возможно, вы в прошлом неправильно писали эту функцию (но предупреждение, напоминающее, что это было добавлено в компилятор).
Возможно, вы хотите что-то подобное
public func += ( left: inout CGVector, right: CGVector) {
left = CGVector(dx: left.dx + right.dx, dy: left.dy + right.dy)
}