-
Notifications
You must be signed in to change notification settings - Fork 70
Description
| Previous ID | SR-13896 |
| Radar | rdar://60600911 |
| Original Reporter | frostra1n (JIRA User) |
| Type | Bug |
Attachment: Download
Environment
macOS Catalina 10.15.7
Apple Swift version 5.3 (swiftlang-1200.0.29.2 clang-1200.0.30.1)
Xcode 12.1
Additional Detail from JIRA
| Votes | 0 |
| Component/s | Compiler, Xcode Playground Support |
| Labels | Bug, PropertyWrappers |
| Assignee | None |
| Priority | Medium |
md5: f20a4f1b3d227c0ef91b2fdd21421924
Issue Description:
I'm working on project that uses both UIKit and SwiftUI and I found a scenario that shows a confusing error when assigning a `UIImage?` in a struct initializer. The error is:
Variable 'self.asPreview' used before being initialized
And this is the code that produces the error:
import SwiftUI
import UIKit
struct BookView: View {
let asPreview: Bool
@State var image: UIImage?
init(image: UIImage?, asPreview: Bool = false) {
self.image = image
self.asPreview = asPreview
}
var body: some View {
Group {}
}
}The error is pointed in line 9 right under the equal sign ("self.image = image"), but actually that line assigns a different struct property, so it's a little bit confusing.
What it could be happening is that a different type of value is being assigned to the image variable, so the error message that should be shown instead could be something related of assigning an `UIImage?` to a `State<UIImage?>` variable.
The code above can be used in Xcode playground to reproduce the issue. I've attached a screenshot reproducing the bug.