2015-09-17 4 views
5

Ich hatte eine Swift Klasse wie folgt erklärt:@objc Fehler bei der Migration zu Swift 2

@objc class MyHelper { 
// class code 
} 

ich dies zu tun hatte solche Klasse von Objective-C Klassen zugreifen zu können, da ich Sprachen in meinem Projekt zu mischen. Nun, da ich zu Xcode 7 aufgerüstet, bekomme ich diesen Fehler:

Only classes that inherit from NSObject can be declared @objc

Und eine solche Klasse ist nicht bekannt, durch meine Objective-C Klassen mehr. Ich nehme an, dass ich dann meine Swift Klasse von NSObject erben sollte, wird das irgendeinen Einfluss auf die Funktionsweise der App haben?

Dank

Antwort

3

Sehen Sie das Apple-Mitarbeiter SevenTenEleven des reply im Apple Developer Forum.

Er erwähnte, dass dies wegen @objc auf Swift-Root-Klassen nie ganz wie eine NSObject-Rooted-Klasse verhält, was zu verschiedenen Seltsamkeiten in der generierten Kopfzeile und zur Laufzeit führt.

Wir können weiterhin jede Swift-Klasseninstanz als AnyObject behandeln, Methoden und Eigenschaften für eine Swift-Klasse als @objc markieren und den Objective-C-Protokollen entsprechen; Die Klasse wird nur im generierten Header nicht verfügbar gemacht und ihre Mitglieder sind standardmäßig nicht in Objective-C verfügbar.

Verwandte Themen