Swift-Anwendungen mit dem iOS Client SDK schreiben
Sie entwickeln iOS-Apps mit den iOS-Client-SDK- und der Swift- und Objective-C-Programmiersprachen.
Xcode IDE verwenden:
- Fügen Sie die Bridge-Headerdateien hinzu.
- Fügen Sie die SDK-Headerdateien und Librarys hinzu.
- Fügen Sie das Kennzeichen "Objective-C linker" hinzu.
- Kompilieren und verknüpfen Sie Ihre Anwendung mit dem iOS-Client-SDK wie jedes andere iOS-Projekt im Xcode. Die Verwendung von SDK mit Swift hat alle gleichen Abhängigkeiten wie die Verwendung von SDK mit Objective-C.
Bridging-Headerdatei hinzufügen
Sie müssen eine Header-Datei mit Bridging verwenden, um die Header-Dateien der Objective-C öffentlichen Klassen zu importieren, die Ihre Swift-App aufruft. Alle verfügbaren öffentlichen Klassen im Oracle Mobile Hub-Client-SDK finden Sie im Ordner include
des SDKs.
So erstellen Sie eine Bridge-Headerdatei in Xcode:
SDK-Header und Librarys einer Swift-App hinzufügen
Das Set der Header und Librarys, die Sie hinzufügen, hängt von den statischen Librarys des Client-SDK ab, die Sie in die App aufnehmen. Sie benötigen mindestens die Librarys libOMCCore.a
und libIDMMobileSDK.a
.
SDK-Objekte in Swift-Apps verwenden
Die Regeln zum Konvertieren von Objective-C in Swift sind in der Apple-Dokumentation beschrieben. Um allgemeine Informationen zu Beziehung und Verwendung dieser beiden Sprachen zusammen zu erhalten, achten Sie darauf.
Sehen Sie sich wie folgt an:
-
Die automatische Vervollständigungsfunktion des Codeeditors in Xcode ist im Allgemeinen ausreichend, um die Zuordnungen zu erhalten. In manchen Fällen wird jedoch das Label im ersten Parameter hinzugefügt, der dort nicht vorgesehen ist. Sehen Sie sich dies an, wenn Sie die automatische Vervollständigung verwenden.
-
Wenn Objective-C
init
-Methoden zu Swift gehen, wird der native Swift-Initialisierungsblock benötigt. Dies bedeutet, dass das Präfixinit
deaktiviert ist und ein Schlüsselwort wird, mit dem angegeben wird, dass die Methode ein Initialisierungsblock ist. Vollständige Einzelheiten finden Sie in der Apple-Dokumentation. -
Beachten Sie besonders die optionalen Parameterspezifikationen
!
und?
sowie alle parametrisierten Typen in den Deklarationen. Die optionalen Typen werden automatisch vom Compiler bei der Zuordnung von Objective-C zu Swift bestimmt.
Sie sollten die App mit Swift und dem Oracle Mobile Hub-Client-SDK sowohl auf Xcode Simulator als auch auf einem eigentlichen Gerät kompilieren und ausführen können.
Im Folgenden finden Sie ein Beispiel für Objective-C und der vergleichbare Swift-Code, der das Oracle Mobile Hub-Client-SDK verwendet.
Der folgende Objective-C-Code zur Registrierung eines Gerätetokens für Push-Benachrichtigungen:
// Get notifications sdk object
OMCNotifications* notifications = [[appDelegate myMobileBackend] notifications];
// Register device token with MCS server using notifications sdk
[notifications registerForNotifications:[appDelegate getDeviceTokenData]
onSuccess:^(NSHTTPURLResponse *response) {
NSLog(@"Device token registered successfully on MCS server");
dispatch_async(dispatch_get_main_queue(), ^{
// Update UI here
}) ;
}
onError:^(NSError *error) {
NSLog(@"Error: %@", error.localizedDescription);
dispatch_async(dispatch_get_main_queue(), ^{
// Update UI here
}) ;
}];
kann in Swift auf folgende Weise geschrieben werden:
@IBAction func registerForPushNotifications() {
// Get notifications sdk object
let notifications = appDelegate.myMobileBackend().notifications();
// Get device token first, and assign it here
let deviceTokenData:NSData! = nil;
// Register device token with MCS server using notifications sdk
notifications.registerForNotifications(deviceTokenData, onSuccess: { (response:NSHTTPURLResponse!) in
NSLog("Device token registered successfully on MCS server");
dispatch_async(dispatch_get_main_queue()) {
// Update UI here
}
}) { (error) in
print("Error: %@", error.localizedDescription);
};
}