Может ли класс быть представлением в SwiftUI? - PullRequest
1 голос
/ 20 февраля 2020

Я могу определить что-то вроде

struct SimpleView: View { ...

, но что-то вроде

final class SimpleView: View { ...

делает cra sh с EXC_BAD_INSTRUCTION во время выполнения. Это вообще невозможно или просто в моем случае?

1 Ответ

0 голосов
/ 09 апреля 2020

Короткий ответ: нет .


Более длинный ответ заключается в том, что Swift (язык) позволяет это, поскольку нет способа запретить принятие протокола классы (хотя вы можете заставить протокол быть принятым только классами, это противоположно тому, что потребуется). Однако SwiftUI полагается, что представления являются structs для своих внутренних методов обновления представлений, так что нет. Это связано с тем, почему вам нужно использовать @State для типов значений (потому что он наблюдает, когда значение изменяется, и если использовался ссылочный тип, представление будет обновляться только при переназначении объекта, а не при изменении каких-либо свойств) и используйте @ObservedObject для ссылочных типов (а ObservableObject s должно быть class es.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...