[Swift] Parseでデータを追記する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Parseでデータを読み込むに引き続き、データをParseサーバ上に追記する方法になります。

今回は、シンプルに、書き込むデータは事前に用意した画像とタイトル名とします。

前回の記事の続きになりますので、事前に前回の記事を読まれることをお勧めします。

Storyboard

スクリーンショット 2014-11-30 19.10.29

NavigationBarの上に、データを追加・セーブするためのBar Button Item を追加しています。

Swiftでコードを書く

TableViewController.swift

    @IBAction func tapAddButton(sender: AnyObject) {
        var object: PFObject = PFObject(className: "Picture")
        object["title"] = "駅のホームより"
        var imageData: NSData = UIImageJPEGRepresentation(UIImage(named: "image.jpg"), 0.1)
        var file: PFFile = PFFile(name: "image.jpg", data: imageData)
        object["graphicFile"] = file
        object.saveInBackgroundWithBlock { (succeeded, error) -> Void in
            self.prepareToUseData()
            self.tableView.reloadData()
        }
    }

画像データは事前に用意したファイルをプロジェクトに追加してあります。

  • 2行目: PFObjectを作成しています。同時にアプリ内でのデータ細分項目である、Class Nameを指定しています。
  • 3行目: titleカラムに対して書き込むための文字列をしてしています。
  • 4行目: JPEGファイルを、NSDataに変換し、imageDataに代入しています。
  • 5行目: 画像ファイルを格納するPFFile型のfileを宣言しています。ファイル名は image.jpg、中身は先ほど作成したNSData型のimageDataです。
  • 6行目: PFObjectにPFFileを代入しています。PFObjectはファイルの上限サイズが小さく、こうしてPFFileと関連付けることで、大きな画像ファイルのセーブを実現しています。
    参考:[Parse][iOS] PFFileの使い方
  • 7行目〜: 実際にデータを書き込む部分です。self.prepareToUseData()の中では、前回作ったloadData()の呼び出しとself.tableView.reloadData()の呼び出しをしています。

完成

Untitled2
※アニメーションGIFファイルです。動かない場合は、画像をタップしてみてください。

スクリーンショット 2014-11-30 19.43.28

+ボタンを押すとデータが読み込まれ、セルが追加されていますね。Parseのデータ管理画面からも確認できます。

お疲れ様でした!