IOS Client SDKを使用したSwiftアプリケーションの書込み
IOSモバイル・アプリケーションを開発するには、iOSクライアントSDKおよびSwiftおよびObjectiveC - Cプログラミング言語を使用します。
Xcode IDEを使用した場合:
- ブリジング・ヘッダー・ファイルを追加します。
- SDKヘッダー・ファイルとライブラリを追加します。
- ObjectiveC - Cリンカー・フラグを追加します。
- Xcode内の他のiOSプロジェクトと同じように、iOSクライアントSDKを使用してアプリケーションをコンパイルしてリンクします。SwiftでSDKを使用すると、Objective-CでSDKを使用する場合と同じ依存性がすべてあります。
ブリッジング・ヘッダー・ファイルの追加
Bridgeヘッダー・ファイルを使用して、SwiftアプリケーションがコールするObject - Cパブリック・クラスのヘッダー・ファイルをインポートする必要があります。Oracle Mobile HubクライアントSDKで使用可能なすべてのパブリック・クラスは、SDKのinclude
フォルダにあります。
Xコードでブリッジング・ヘッダー・ファイルを作成する手順は、次のとおりです。
SwiftアプリケーションへのSDKヘッダーおよびライブラリの追加
追加するヘッダーおよびライブラリのセットは、アプリケーションに含めるクライアントSDKの静的ライブラリによって異なります。少なくとも、libOMCCore.a
およびlibIDMMobileSDK.a
ライブラリが必要です。
SwiftアプリケーションでのSDKオブジェクトの使用
ObjectiveC - CからSwiftに変換するためのルールについては、Appleのドキュメントを参照してください。これら2つの言語の関係および使用方法に関する一般情報は、を参照してください。
次の項目を確認してください。
-
Xcodeのコード・エディタのオートコンプリート機能は、一般に、マッピングを取得するには十分に機能します。ただし、場合によっては、想定されない最初のパラメータにラベルが配置されることがあります。オートコンプリートを使用する場合は、その際にウォッチします。
-
Object - C
init
メソッドがSwiftに移行すると、ネイティブのSwiftイニシャライザ構文を取得します。これは、init
接頭辞が切り分けられ、メソッドがイニシャライザであることを示すキーワードとなることを意味します。詳細は、Appleのドキュメントを参照してください。 -
!
および?
オプションのパラメータ指定、および宣言内のパラメータ化された型には特別な注意を払う必要があります。オプションのタイプは、ObjectiveC - CをSwiftにマッピングするときにコンパイラによって自動決定されます。
Xcodeシミュレータと実際のデバイスの両方で、SwiftおよびOracle Mobile HubクライアントSDKを使用してモバイル・アプリをコンパイルおよび実行できます。
次に、Object - Cの例と、Oracle Mobile HubクライアントSDKを使用する同等のSwiftコードを示します。
プッシュ通知用のデバイス・トークンを登録するには、次のObjectiveC - Cコードを使用します。
// 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
}) ;
}];
swiftでは、次のように記述されている可能性があります。
@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);
};
}