25
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?