SwiftでParseを試してみた


##開発環境
PC: MacOS X 10.9.4
Xcode6.1-β


##Swiftプロジェクトの作成

![スクリーンショット 2014-09-07 23.58.06.png](https://qiita-image-store.s3.amazonaws.com/0/3184/596d3481-8361-22ca-2ef4-7f0098ded67f.png "スクリーンショット 2014-09-07 23.58.06.png")

##フレームワークとライブラリの追加
###基本フレームワークとライブラリ

プロジェクトの設定画面の [General]-[Linked Frameworks and Libraries]から下記の基本フレームワーク群を追加する。

* Accounts.framework
* AdSupport.framework
* AudioToolBox.framework
* CFNetwork.framework
* CoreGraphics.framework
* CoreLocation.framework
* Foundation.framework
* MobileCoreService.framework
* QuartzCore.framework
* Security.framework
* Social.framework
* StoreKit.framework
* SystemConfigration.framework
* UIKit.framework
* libsqlite3.dylib
* libz.1.1.3.dylib

![スクリーンショット 2014-09-08 0.16.12.png](https://qiita-image-store.s3.amazonaws.com/0/3184/1dd60edc-029c-ed57-0a29-96ae73ff4497.png "スクリーンショット 2014-09-08 0.16.12.png")


###Parseフレームワークライブラリ

`Parse.com`からダウンロードした下記の`Parse`フレームワークライブラリをプロジェクトにコピペしプロジェクトに追加する。

* Bolts.framework
* Parse.framework
* ParseFacebookUtils.framework


![スクリーンショット 2014-09-08 0.15.02.png](https://qiita-image-store.s3.amazonaws.com/0/3184/6f1b5245-fb1f-4db3-8dc7-f95a71a9d7f2.png "スクリーンショット 2014-09-08 0.15.02.png")

先程と同様にプロジェクトの設定画面で、[General]-[Linked Frameworks and Libraries]-[+]-[Add other...]から`Framework`3つを追加登録する。

![スクリーンショット 2014-09-08 0.17.28.png](https://qiita-image-store.s3.amazonaws.com/0/3184/c5d139d1-2b46-8629-166c-f1c02aa5a808.png "スクリーンショット 2014-09-08 0.17.28.png")

ちなみにここでは便宜的に`Frameworks`ディレクトリをプロジェクトに作成して一箇所に配置している。


##Swiftへ Objective-Cヘッダファイルの読み込み

前回の記事の[SwiftからObjective-C のヘッダファイルを読込む方法](http://qiita.com/tajihiro/items/b1f4d1f64a0c918e9077)によって、ヘッダファイルをプロジェクトに追加する。

![スクリーンショット 2014-09-14 23.31.01.png](https://qiita-image-store.s3.amazonaws.com/0/3184/04fd5f2a-fe6b-3b40-dd56-0a355f9c6b65.png "スクリーンショット 2014-09-14 23.31.01.png")

そして、`Parse`のヘッダファイルをインポートする

```SwiftParseSample-Bridging-Header.h
#ifndef SwiftParseSample_SwiftParseSample_Bridging_Header_h
#define SwiftParseSample_SwiftParseSample_Bridging_Header_h

#import <Parse/Parse.h>

#endif
```


##Parse.comへのユーザ登録

`Parse.com`への登録は特にこの記事では紹介しないが、ユーザ登録して、アプリケーションを作成する。
ちなみに全く関係ないがサイトのデザインが最近変わったのね?

![スクリーンショット 2014-09-15 0.20.05.png](https://qiita-image-store.s3.amazonaws.com/0/3184/f32589ea-c3f8-7797-8c1a-d21f137ba8c4.png "スクリーンショット 2014-09-15 0.20.05.png")


##Parseへデータ登録するコードの実装

実際の`Parse.com`の公式サイトドキュメントには、`Objective-C`のサンプルコードしか無いが、`swift`の記述方式で真似てみる。

`AppDelegate.swift`の`application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)`メソッド内に、`parse.com`で付与されたアプリケーションIDとクライアントキーを設定し初期化する。


```AppDelegate.swift
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(
			application: UIApplication,
			didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
			-> Bool {
        
        //Parseで付与されたアプリケーションIDとクライアントキー
        Parse.setApplicationId("xxxxxxx", clientKey: "kkkkkkkkkkk")
        
        return true
    }
}
```


`ViewController.swift`へ下記のコードを記述する。

```ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        var myObject:PFObject = PFObject(className: "MyObject")
        myObject.setValue("こんにちは。", forKey: "message")
        myObject.saveInBackground()
        
    }

}

```

アプリケーションを`Run`実行すると何事も無くアプリが起動するが、`Parse.com`のサイトで自分のアプリケーションのデータをWebブラウザで確認すると、見事に`Class`が作成されデータも登録されている。


![スクリーンショット 2014-09-14 23.55.33.png](https://qiita-image-store.s3.amazonaws.com/0/3184/992cb132-9243-515f-aafc-978592c385bd.png "スクリーンショット 2014-09-14 23.55.33.png")

やったぁ。楽しい。


***Lovely Swift & Parse!!!***