AsyncImage(url: url) { phase in
switch phase {
case .empty:
ProgressView()
case .success(let image):
imageProcessed(image: image)
case .failure:
Image(systemName: "photo")
@unknown default: assertionFailure()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this yields Type '()' cannot conform to 'View'
// Since the AsyncImagePhase enum isn't frozen,
// we need to add this currently unused fallback
// to handle any new cases that might be added
// in the future:
EmptyView()
^^^^^^^^^^^^^^^^^ adding return here yields Cannot use explicit 'return' statement in the body of result builder 'ViewBuilder'
}
}
There's a trick that is often used to print
within a View
body
that you can use:
let _ = assertionFailure()
By doing a "fake" variable assignment like this, the result builder doesn't complain about syntax errors.