2016-06-06 14 views
0

Ich möchte einen Delegaten in Swift Struct deklarieren. Zum Beispiel in Viewcontroller können Sie delegieren laden:Swift: Deklarieren eines Delegaten in Struct

class ViewController : UIViewController, UITableViewDelegate 

Aber in Struct-Datei zum Beispiel versuche ich auf das gleiche:

struct sample:UITableViewDelegate 

Aber ich bin immer diese Fehlermeldung:

Non-Class type 'sample' cannot conform to class protocol NSObjectProtocol 

Wie kann ich einen Delegaten zur Struct-Datei hinzufügen?

Ich werde Ihre Hilfe wirklich zu schätzen wissen.

Antwort

0

Der Fehler sagt alles. Sie können nicht mit einem NSObjectProtocol (Vaterklasse aller Protokolle) übereinstimmen, wenn Sie keine Klasse sind!

Betrachten Sie eine Vanilla-Klasse, wenn sie einem Protokoll entsprechen muss, sollte sie nicht eine Struktur an erster Stelle sein!

+0

NSObjectProtocol ist nicht die Spitze einer Protokollhierarchie in Swift. Es gibt auch legitime Gründe dafür, Strukturen in Swift den Protokollen anzupassen - dies geschieht häufig in der Standardbibliothek, z. B .: https://developer.apple.com/reference/swift/int#relationships –

1

Structs in swift kann nur Protokolle entspricht, das nicht als Klasse Protokolle mit Stichwort markiert class, wie CustomStringConvertible Protokoll