Обычно SwiftUI предпочитает схему приема обратных вызовов, а не протокол / делегатов. Например, каждая кнопка в ActionSheet
имеет закрытие, которое выполняется при нажатии кнопки.
Однако вы не должны просто преобразовывать свой код напрямую. SwiftUI, будучи декларативным, использует разные парадигмы для многих вещей. Например, у вас не было бы метода didFetchInfo
, вы бы просто назначили его переменной @Published.
Подумайте о наличии « единых источников истины », где один переменная всегда верна. Например, List
просто принимает массив и обновляется при изменении массива, в отличие от UITableView
, где вы предоставляете данные через numberOfRows
и cellForRowAt
. Я не знаю достаточно о вашем конкретном c проекте, чтобы дать более подробную информацию, но это то, о чем стоит подумать.