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.

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.

Menü