NCMBのCRUD

NCMBの基本的な操作であるCRUDについて学んでいきましょう。
<img width="341" alt="スクリーンショット 2019-07-21 5.57.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325764/9d179e47-08bf-2375-1b21-cc0830af1bd7.png">
###Create(データの取得)
データを保存するもの。

```
~~~省略~~~
    @IBAction func save(_ sender: Any) {
        let object = NCMBObject(className: "Message")
        object?.setObject(textField.text, forKey: "Text")
        object?.saveInBackground({ (error) in
            if error != nil{
                //エラーが発生したら
                print("error")
            }else{
                //保存に成功したら
                print("success")
            }
        })
    }
~~~省略~~~
```

このコードを書いた後に、textFieldに入力して保存ボタンを押すと、以下のようにNCMBにも保存されます。<img width="1436" alt="スクリーンショット 2019-07-21 6.07.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325764/e6cc0f70-8487-6566-5d00-c9a5369410f8.png">
今回はこれらを保存してみました。

###load(データの読み込み)
今回は最新のものを読み込みたいと思います。

```
~~~省略~~~
@IBAction func load(_ sender: Any) {
        let query = NCMBQuery(className: "Message")
        query?.findObjectsInBackground({ (result, error) in
            if error != nil{
                //error
                print("error")
            }else{
                var messages = result as! [NCMBObject]
                var text = messages.last?.object(forKey: "Text") as! String
                self.textField.text = text
            }
        })
    }
~~~省略~~~

```
<img width="332" alt="スクリーンショット 2019-07-21 6.11.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325764/2d42af84-5a5d-d8b9-13b5-879e44bcf575.png">
見事に読み込むことに成功しました。

###Update(データの更新)
今回はありがとうをごめんねに書き換えたいと思います。

```
~~~省略~~~
@IBAction func update(_ sender: Any) {
        //読み出し
        let query = NCMBQuery(className: "Message")
        //絞り込み
        query?.whereKey("Text", equalTo: "ありがとう")
        //読み込む
        query?.findObjectsInBackground({ (result, error) in
            if error != nil{
                print(error)
            }else{
                let messages = result as! [NCMBObject]
                let textObject = messages.first
                textObject?.setObject("ごめんね", forKey: "Text")
                //保存できるかどうか
                textObject?.saveInBackground({ (error) in
                    if error != nil{
                        print(error)
                    }else{
                        print("Update Succeed")
                    }
                })
            }
        })
    }
~~~省略~~~
```
<img width="1438" alt="スクリーンショット 2019-07-21 6.15.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325764/9d38586c-e53e-46ed-9679-9f8bf1552d78.png">
ありがとうをごめんねに書き換えることに成功しました。

###Delete(データの削除)
今回はなんでだという文字を削除してみたいと思います。

```
~~~省略~~~
@IBAction func deleteButton(_ sender: Any) {
        let query = NCMBQuery(className: "Message")
        query?.whereKey("Text", equalTo: "なんでだ")
        query?.findObjectsInBackground({ (result,error ) in
            if error != nil{
                print(error)
            }else{
                let messages = result as! [NCMBObject]
                let textObject = messages.first
                textObject?.deleteInBackground({ (error) in
                    if error != nil{
                        print(error)
                    }else{
                        print("Delete succeed")
                    }
                })
            }
        })
    }
~~~省略~~~

```
<img width="1434" alt="スクリーンショット 2019-07-21 6.17.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325764/41e69211-7c76-4236-3a28-2f476f7e74be.png">
これで削除できました