10 Objective-C-Funktionen, die nicht in Swift Sind
Wenn Sie ein erfahrener Objective-C-Entwickler sind, diese Liste erinnert an einige Funktionen, die Sie verwendet werden, um die in Swift nicht verfügbar sind. In jedem Fall Abhilfen und Strategien für Ihre alte erprobte und wahre Objective-C Freunde ersetzt werden zur Verfügung gestellt. Und keine Sorge: In den meisten Fällen werden Sie weniger Code schreiben zu enden, und Ihr Code wird robuster sein.
Menu
- Abschied von header (h) dateien
- Abschied von baumelnden zeigern (fast immer)
- Vergessen über nicht initialisierte variablen und eigenschaften
- Ausnutzen einer gemeinsamen oberklasse wie nsobject
- Managing type casting
- Vorzog verschlüsse blöcke
- Erste von legacy-speicherverwaltung zu befreien
- Ersetzen eigenschaft dekorateure
- Mit swift stil klasse eigenschaften zuzugreifen
- Klärende swift zugriffskontrolle
Abschied von Header (H) Dateien
In Swift, dem Header (.h) Dateien sind verschwunden. Das .h und .m Dateien für Kopf- und Körper (ursprünglich genannt Nachrichten) einer Klasse werden in einem einzigen konsolidierten .schnell Datei.
Abschied von baumelnden Zeigern (fast immer)
Es ist schwer (aber nicht unmöglich), ein baumelnden Zeiger in Swift zu verweisen. In den letzten Jahren Objective-C auch solche Referenzen schwieriger, aber sie bleiben deutlich ermöglicht. Sie können Probleme mit diesen Referenzen zu vermeiden, wenn Sie sicherstellen, dass Verweise auf Instanzen werden immer gesetzt, bevor sie verwendet werden, und dass sie auf Null bevor die Instanz aufgehoben. Swift nutzt nur sehr wenige Hinweise, so baumeln lassen können sie nicht.
Vergessen über nicht initialisierte Variablen und Eigenschaften
Swift erfordert Initialisierung von deklarierten Eigenschaften, Variablen und Konstanten. Dadurch wird sofort eine ganze Reihe von Problemen, die auftreten können, wenn Sie nicht initialisierte Variablen verweisen und kann entweder zum Absturz bringen oder zu unerwarteten (und häufig nicht wiederholbar) Fehler.
Ausnutzen einer gemeinsamen Oberklasse wie NSObject
Die meisten Objekte in Objective-C sind Subklassen von NSObject- fast alle von ihnen zu entsprechen den Anforderungen der NSObject Protokoll. So Sammlungen wie NSArray und NSDictionary kann so lange Gegenstände jeglicher Art enthalten, wie sie Subklassen sind NSObject. In Swift, die Elemente eines Arrays oder Wörterbuch haben keine gemeinsame übergeordnete Klasse, aber sie haben einen gemeinsamen Typ zu haben, so dass sie manipuliert werden können. Dies ist nun in Ihrer Verantwortung.
Managing type casting
Objective-C verwaltet Art Casting, wo sie kann, aber wenn Ihre Annahme über die richtige Besetzung unterscheidet sich von Objective-C, kann Ihr Code zum Absturz bringen. Mit Swift, müssen Sie explizit das Casting zu tun. Allerdings Swift kann einen Typ von Anfangswerte von Variablen oder Konstanten ableiten, so per Saldo ist Ihr Code robuster und Sie können tatsächlich weniger davon benötigen, weil Sie Swift schließen Typen für Sie lassen können.
Vorzog Verschlüsse Blöcke
Die Blöcke in Objective-C sind wie Verschlüsse in anderen Sprachen. In Swift, wird diese Funktion von Verschlüssen versehen, und die Dokumentation spiegelt diese Verwendung.
Erste von Legacy-Speicherverwaltung zu befreien
Obwohl manuelle Speicherverwaltung mit alloc und dealloc ist gewesen # 173-veraltet in Swift, viel Code existiert immer noch, dass entweder verwendet er oder bezieht sich auf es in den Kommentaren und kommentiert-out Zeilen Code. Wenn Sie alte Code konvertieren, anstatt neue Swift-Code von Grund auf neu zu schreiben, dann ist es sinnvoll, diese Spuren manuelle Speicherverwaltung zu entfernen. Es ist sehr unwahrscheinlich, dass sie zurückkehren wird.
Ersetzen Eigenschaft Dekorateure
Anstelle von Objective-C Eigentum Ausstatter, hat Swift Anmerkungen in Erklärungen. Die Mischung von Attributen, wie zum Beispiel schreibgeschützt, stark, schwach, und dergleichen, ist mit Swift weg. Die erforderlichen Informationen werden in Typen umfasst.
Mit Swift Stil Klasse Eigenschaften zuzugreifen
Swift Stil verwendet Punktsyntax Objekte innerhalb einer Klasse, Struktur oder Aufzählung zu verweisen. Entfernen Sie alle übrig gebliebenen konsolenbasierte Syntax.
Klärende Swift Zugriffskontrolle
Die Datenschutzrichtlinien in Objective-C sind unterschiedlich in Swift abgewickelt. In Objective-C verwenden Sie die folgenden Richtlinien:
@Privat
@geschützt
@Öffentlichkeit
Erklärungen von Methoden und Eigenschaften können auch beide in die platziert werden .h Datei oder in einer Klassenerweiterung ein .m Datei. Dies bietet zwei disjunkte Wege, # 173-Angabe Sichtbarkeit.
Swift hat keine .h oder .m Dateien und daher keine Klassenerweiterungen mit hiddendeclarations. Es verfügt über einen einzigen Zugangskontrollmodell
Öffentlichkeit
Privat-
intern
Diese sind Teil der Sprache selbst, anstatt Compiler-Direktiven.