Не удалось преобразовать список областей из списка <SpecificObject>в список <Object> - PullRequest
0 голосов
/ 03 мая 2018

Я работаю над библиотекой для синхронизации Realm с использованием CloudKit (https://github.com/caiyue1993/IceCream).

Я пытаюсь получить доступ к свойству объекта области, которое является List<SpecificObject> через parentObject["propertyName"].

Поскольку я не могу напрямую ссылаться на тип SpecificObject, поэтому я пытаюсь привести его к List<Object> следующим образом:

parentObject["propertyName"] as? List<Object>

но это производит nil.

Тот же результат для приведения к AnyRealmCollection<Object>.

Он успешно приводит к ListBase, который является суперклассом List<T>, но это бесполезно.

Есть какие-нибудь идеи о том, что я могу делать неправильно, или я должен представить это как проблему в репо RealmCocoa?

1 Ответ

0 голосов
/ 03 мая 2018

Поскольку универсальные типы в Swift инвариантны, List<Object> и List<ObjectSubclass> - это два совершенно не связанных типа. Отсюда и неудачное приведение в вашем коде.

Не зная точного типа, который хранится в List, невозможно преобразовать тип List<ObjectSubclass> в List<Object> из-за их инвариантности.

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