Um Kreuzkompatibilität bereitzustellen, ermöglicht Swift die Generierung eines Bridging-Headers, sodass Objective-C mit Swift-Klassen kommunizieren kann.Soll eine Swift-Klasse vorangestellt werden, um mögliche Objective-C-Kompatibilitätsprobleme zu vermeiden
Aufgrund von Swifts wundervollem Namespacing müssen wir uns nicht länger darum kümmern, dass wir unsere Swift-Dateien als Namespace voranstellen. Ein UIView
zum Beispiel ist implizit Namespaces wie UIKit.UIView
.
Jetzt, da Apple Frameworks drängen, frage ich mich, was die Best Practices sind Header Kollision zu vermeiden, wenn es zwei schnelle Bridging-Header mit den gleichen Symbolen gibt.
Ein Beispiel: Angenommen, wir haben zwei Frameworks, die eine Swift-Klasse namens Downloader
deklariert haben. Das Downloader
stellt die Schnittstelle bereit: downloadWithURL(url: NSURL)
Generieren eines Bridging-Headers wird eine Downloader-Swift.h-Datei für beide dieser Frameworks ergeben. Dies verursacht eine Kollision. Was sind die besten Praktiken, um dies zu vermeiden?