Próbuję wymyślić metodę unikania cykli zatrzymania, gdy niektóre odniesienia w cyklu są przechowywane w kolekcjach. Moim pomysłem było stworzenie opakowania struct
:Wymuszenie ogólnego typu parametru na typ klasy?
struct Weak<T> {
unowned let value: T
init(_ value: T) {
self.value = value
}
}
Kwestia jest taka, że unowned
i weak
członkowie muszą być typu klasy (main.swift:3:17: 'unowned' cannot be applied to non-class type 'T'; consider adding a class bound
), ale nie ma rozsądne nadklasą dla mnie wymagać T
dziedziczyć po.
Czy istnieje sposób na wymuszenie, aby T
był typu klasy bez dziedziczenia z innej klasy?
Zadziałało, dzięki! Czy jest to gdziekolwiek w dokumentacji? –
Tak, przeczytaj sekcję o generycznych dla składni ogólnej definicji. Wykonaj wyszukiwanie w iBook na AnyObject, aby uzyskać więcej informacji na temat tego protokołu. –