Макросы препроцессора довольно часто встречаются в официальных руководствах / видеороликах SwiftUI, например ::10000
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
Это нужно? Компилятор наверняка увидит, что struct
не используется внутри, и пропустит весь struct
, так как модификатор доступа неявный internal
верно? Я думаю, что все, что соответствует PreviewProvider
, может быть удалено, но, возможно, это не так для каждого соответствующего объекта, но если он не используется, почему Apple решает включить макрос препроцессора?
Я пытался запустить его в режиме выпуска и найти скомпилированный класс в папке производных данных, но я ничего не понимаю в этом (файл .o). Может ли кто-нибудь подтвердить, действительно ли нам нужно включать макросы для исключения неиспользуемого кода (тип ContentView_Previews нигде не используется в коде, ожидаемом для предварительного просмотра, который в любом случае не используется в сборке выпуска) в сборке выпуска?