Nachdem ich einige Beiträge hier zu diesem Thema gelesen habe, entdeckte ich, dass mein Protokoll von 'Klasse' erben sollte, um 'schwach' an meinem zu arbeiten Delegate Variable.Swift: wie umgehen Problem, wo schwache Variable vom Typ 'Protokoll' illegal ist
"schwach" kann nur auf Klassen- oder Klassengebundene Protokolltypen angewendet werden.
Wenn mein Protokoll nicht von "Klasse" erbt, folgert schnell, dass es schwach sein sollte?
Ist dies die De-facto-Methode, um eine Variable vom Typ 'Protokoll' zu schwach zu machen?
Was einfach gebunden mit : class
protocol FacebookLoginViewControllerDelegate: class {
func facebookLoginViewControllerDidLogin(controller: FacebookLoginViewController)
}
class FacebookLoginViewController: UIViewController {
weak var delegate: FacebookLoginViewControllerDelegate?
}
Ist dies hilft Ihnen http://StackOverflow.com/a/24104371/1371853 – swiftBoy
Ich bin mir nicht sicher, was Sie hier fragen ... Eine Protokollklasse gebunden (': class') sagt einfach dem Compiler, dass es kann immer nur einen Referenztyp darstellen - und deshalb können Sie "schwach" darauf verwenden. Sie können keinen Wert als "schwach" angeben, da ARC (automatische * Referenz * zählen) mit Referenzen und nicht mit Werten arbeitet. – Hamish
scheint eine vernünftige Antwort zu sein. Lust, das als Antwort zu posten? –