Hacker News new | past | comments | ask | show | jobs | submit login

You're correct, part of the problem is indeed that, though I'm not completely sure myself.

But how do things like EmptyView work? How do they conform to the View protocol without having a body property (that must also be a View)?




I think it has a body type [0] (Never). And since a default implementation is provided [1] the compiler probably does not complain. This default body implementation does likely not draw anything, but that's just guessing.

[0]: https://developer.apple.com/documentation/swiftui/emptyview/... [1]: https://developer.apple.com/documentation/swiftui/view/32785...


It's because of Body's type:

    public struct EmptyView: View {
        @inlinable public init()
        public typealias Body = Never
    }
Because Body is Never, you can't access EmptyView's body property.



I don't see why not. When I trick it into calling `body` on an EmptyView, I get this runtime failure:

> Thread 1: Fatal error: body() should not be called on EmptyView.

So I don't think the implementation is doing anything beyond the fatalError() call from that forum thread. At least not at this point in time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: