flopshot
flopshot

Reputation: 1645

Xcode 15 - Preview macro error with UIKit UIView

In my legacy code base with public Xcode 15.0, I can't preview any UIKit views with the new #Preview macro

import SwiftUI

#Preview {
    let uiView = UIView()

    return uiView
}

The canvas fails to load preview with failure diagnostic Compiling failed: return expression of type 'UIView' does not conform to 'View'

Upvotes: 6

Views: 1365

Answers (1)

rob mayoff
rob mayoff

Reputation: 385600

I find that restricting this one-statement preview to iOS 17 works:

@available(iOS 17, *)
#Preview {
    return UIView()
}

However, this two-statement preview still does not work:

@available(iOS 17, *)
#Preview {
    let uiView = UIView()
    return uiView // 🛑 Value of optional type 'UIView?' must be unwrapped to a value of type 'UIView'
}

To get the two-statement preview to work, I have to make the variable type explicit:

@available(iOS 17, *)
#Preview {
    let uiView: UIView = UIView()
    return uiView
}

Upvotes: 17

Related Questions