3 ms·
True. You could work around it by conditionally extending your ViewContainer to have a default constructor (init()), if the type is EmptyView. Then you can writ
by DelightOne 7y ago
True. You could work around it by conditionally extending your ViewContainer to have a default constructor (init()), if the type is EmptyView. Then you can write
var viewContainer2 = ViewContainer<EmptyView>()
But that's probably not what you want is it. Default generic arguments aren't implemented yet, see (https://stackoverflow.com/questions/42015081/can-i-assign-a-default-type-to-generic-type-t-in-swift https://stackoverflow.com/questions/42015081/can-i-assign-a-...). It would have possibly removed the <EmptyView> aspect. So you always have to give a type to ViewContainer, if you provide no way for the compiler to infer it.
- Razengan 7y ago> var viewContainer2 = ViewContainer<EmptyView>() Yes, that would be a workaround for myself, but for a game engine's API, it'd be ugly to require users to write that every time. :) And there are cases where they might not even know the type.
- DelightOne 7y agoIt seems the compiler might be smarter than I thought he is (see a poster above), if so I learnt something new. :) And it seems I didn't understand your problem, you wanting a variable that can change it's type instead of just some syntactic sugar, hmm.