Я пытаюсь найти способ избежать циклов сохранения, когда некоторые ссылки в цикле хранятся в коллекциях. Моя идея состояла в том, чтобы создать оболочку struct
:Использовать типичный тип типа типа класса?
struct Weak<T> {
unowned let value: T
init(_ value: T) {
self.value = value
}
}
Проблема здесь в том, что unowned
и weak
членов должны быть типа класса (main.swift:3:17: 'unowned' cannot be applied to non-class type 'T'; consider adding a class bound
), но нет никакого разумного суперкласса для меня требовать, чтобы T
наследоваться от.
Есть ли способ заставить T
быть типа класса без наследования от другого класса?
Это сработало, спасибо! Это где-нибудь в документации? –
Да, прочитайте раздел о дженериках для синтаксиса общего определения. Проведите поиск в iBook на AnyObject для получения дополнительной информации об этом протоколе. –