##はじめに
Nifty CloudのMBaaSを利用してみようとクイックスタートを少し触ってみました。
http://mb.cloud.nifty.com/doc/quickstart_ios.html
ただ、サンプルがObjective-Cだったので、Swiftに書き換えてみました。
Objective-Cも、Swiftも初心者故、書き方がなんともよくわからないが、そのへんはご了承下さい。
##Objective-C(サンプル)
AppDelegate.m
[NCMB setApplicationKey:@"YOUR_APPLICATION_KEY" clientKey:@"YOUR_CLIENT_KEY"];
NCMBQuery *query = [NCMBQuery queryWithClassName:@"TestClass"];
[query whereKey:@"message" equalTo:@"test"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error == nil) {
if ([objects count] > 0) {
NSLog(@"[FIND] %@", [[objects objectAtIndex:0] objectForKey:@"message"]);
} else {
NSError *saveError = nil;
NCMBObject *obj = [NCMBObject objectWithClassName:@"TestClass"];
[obj setObject:@"Hello, NCMB!" forKey:@"message"];
[obj save:&saveError];
if (saveError == nil) {
NSLog(@"[SAVE] Done");
} else {
NSLog(@"[SAVE-ERROR] %@", saveError);
}
}
} else {
NSLog(@"[ERROR] %@", error);
}
}];
##Swiftに書き換える
- クイックスタートの
NCMB.framework
はBuild Phasesから登録しておきます。 -
NCMB.framework
をSwiftから利用できるようにヘッダファイルを作成しておきます。
XXXXXXX-Bridging-Header.h
#import <NCMB/NCMB.h>
XXXXXXXは、任意で問題無いと思います。(Defaultで、作成されているんではないかと思います。)
以下、参考にさせていただきました。
http://qiita.com/skatata/items/1facd024d239b9545031
- AppDelegate.swiftのdidFinishLaunchingWithOptionsで以下のコードに書き換えます。
AppDelegate.swift
NCMB.setApplicationKey("<YOUR_APPLICATION_KEY>",
clientKey: "<YOUR_CLIENT_KEY>")
var query: NCMBQuery = NCMBQuery(className: "TestClass")
query.whereKey("message", equalTo: "test")
query.findObjectsInBackgroundWithBlock({(NSArray objects, NSError error) in
if (error == nil) {
if(objects.count > 0)
{
var msg: AnyObject? = objects[0].objectForKey("message")
var msgStr: String = msg as NSString
Logger.debug("[FIND] \(msgStr)")
} else {
var saveError : NSError? = nil
var obj : NCMBObject = NCMBObject.objectWithClassName("TestClass")
obj.setObject("Hello, NCMB!", forKey: "message")
obj.save(&saveError)
if(saveError == nil){
Logger.debug("[SAVE] Done.")
} else {
Logger.error("[SAVE ERROR] \(saveError)")
}
}
} else {
Logger.error(error.localizedDescription)
}
})
##まとめ
一応動いている感じはしますが、Arrayあたりの書き方は少し勉強し直します。