«Шесть распространенных «исправлений», которые агенты ИИ-кодирования вносят, чтобы обеспечить прохождение сборки или теста Swift, как выглядит настоящее исправление, и ловушку перед фиксацией, которая их ловит». Агенты ИИ-кодирования очень хорошо умеют превращать красную сборку в зеленую. Они менее надежны в...
«Шесть распространенных «исправлений», которые агенты ИИ-кодирования вносят, чтобы обеспечить прохождение сборки или теста Swift, как выглядит настоящее исправление, и ловушку перед фиксацией, которая их ловит».
Агенты ИИ-кодирования очень хорошо умеют превращать красную сборку в зеленую. Они менее надежны в том, чтобы сделать его зеленым по правильной причине.
Мы создаем Phoenix.vu, агент кодирования AI для Xcode, поэтому читаем много различий, написанных агентом. Одни и те же сочетания клавиш появляются снова и снова в каждой модели и каждом инструменте, включая агентов, теперь встроенных в Xcode. Никто из них не является злонамеренным. Агенту было предложено исправить ошибку, и это самые быстрые способы заставить ошибку исчезнуть.
Вот шесть, на которые стоит обратить внимание, и для каждого из них есть реальное решение.
1. @unchecked Отправляется, чтобы заглушить ошибку параллелизма.
Ошибка (строгий параллелизм Swift 6):
Захват «кеша» с неотправляемым типом «ImageCache» в замыкании «@Sendable».
Ярлык:
финальный класс ImageCache: @unchecked Sendable {
частное хранилище переменных: [URL: UIImage] = [:]
func image (для URL: URL) -> UIImage? { хранилище[url] }
func Insert (_ изображение: UIImage, для URL: URL) {хранилище [url] = изображение }
}
Он компилируется. Он также сообщает компилятору: «Поверьте мне, это потокобезопасно», хотя это не так. У тебя все еще есть