LoginSignup
25
24

More than 5 years have passed since last update.

NiftyCloud(MBaaS)のiOSクイックスタートをObjective-CからSwiftに書き換えてみた

Posted at

はじめに

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あたりの書き方は少し勉強し直します。

25
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
24