10. Swift の利用¶
10.1. 概要¶
Swift から Nebula API を利用することができます。 利用可能な Swift のバージョンは 3 以上です。
iOS SDK は Objective-C で記述されているため、Swift から呼び出すためには Bridging Header をプロジェクトに追加する必要があります。 Briding Header からは Nebula.h ヘッダを import してください。
詳細は Using Swift with Cocoa and Objective-C を参照してください。
10.2. 名前の変換規則¶
Swift から Nebula API を呼び出す際は、Swift3 の規則に従ったメソッド名の 自動変換が行われます。
また、一部のメソッドについては個別に Swift の名称を定義しています。 詳細は SDK の各ヘッダ内に NS_SWIFT_NAME マクロで記述していますので、 こちらを参照してください。
また、'block:' 引数ラベルはすべて 'completion:' ラベルに変更していますので 注意してください。
以下に変換例を示します。
// 変換前(Objective-C)
[NBCore setUpWithAppId:@"appId" appKey:@"appKey" tenantId:@"tenantId"];
[NBCore setEndPointUri:@"http://example.com/api"];
NBObjectBucket *bucket = [[NBObjectBucket alloc] initWithBucketName: @"bucket1"];
NBQuery *query = [NBQuery new];
[query setSortOrderWithKey:@"updatedAt" isAscend:YES];
[bucket queryInBackgroundWithQuery:query block:^(NSArray *objects, NSUInteger count, NSError *error) {
...
}];
// 変換後(Swift3)
NBCore.setUp(appId:"appId" appKey:"appKey" tenantId:"tenantId")
NBCore.set(endPointUri:"http://example.com/api")
let bucket = NBObjectBucket(bucketName: "bucket1")
let query = NBQuery()
query.setSortOrder(key:"updatedAt" isAscend:true)
bucket.queryInBackground(query: query, completion: {objects, count, error in
...
})