うるおいらんど

アプリ開発やサイト制作のメモとか。

【Swift 3】CoreDataを使ってみた。検索・更新・削除編【part2】

魚ライン
魚ライン

前回「part1」では、CoreDataを導入してデータの読み込み・保存のやり方を紹介しました。

今回は、検索と更新と削除のやり方を書いていこうと思います。

 

前回同様に、人のデータを扱っていきます。

Entity名:Person

name / country /gender のデータをそれぞれ保存しています。

 

今回からこのようにして人物登録をしています。コードは割愛(´・ω・`)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-10-2-45-29

 

それではいくつか保存した状態で説明していきます。

 

検索する

前回はすべてのデータを一括で取り出していましたが、今回はとある決まった条件の人のみを検索して読み込みます。

まずは名前が”餅もちこ”の人を探してみます。

 

 

以前と違うのは、マーカーを引いた5〜6行目です。

predicateの意味は述語/述部といった意味らしいです。難しい。

ここに検索するものの型を書いていきます。

数字に関してはC言語とほぼ同じと思って多分大丈夫です。

Int → %d

Float → %f

となります。

Stringに関しては

String → %@

となります。

 

%Kというのが出てきていますが、これは動的プロパティとして扱われるそうです。

今回は”name”が%Kにあたります。

詳しくはこちらを参考にすると良いと思います。

NSPredicate 全構文解説

objective-cですがSwiftでもほとんど同じのはず・・・

 

更新する

次にデータを更新していきます。

“餅もちこ”のデータを取り出して、国を”アメリカ”に変更します。

 

先ほどの検索に、更新する行を付け足しただけです。保存もしておきます。

 

削除する

削除の場合も同様に、検索して削除していきます。

 

名前が”餠もちこ”の人がいた場合、deleteで削除しています。

 

こんな感じで、一度検索して→更新・削除といった形になります。

 

今回は短いですがここまでで。

後々検索・更新・削除について書き足すかもしれません。

 

part3ではRelationshipについて書くつもりです。

以前よりSwift3に対応した記事を目にするようになったのですが、なんか私のコードとちょいちょい違うところあってちょっと不安・・・

 

※一部修正しました!

保存時にappDelegate.saveContext()としていたのですが、アプリ終了時に全てデータが消えてしまっていることがわかりました。

context.save()に変更することで保存に成功しました。大変失礼しました。

 

それではでは

 

※part3書きました。(2016/10/17)

【Swift 3】CoreDataをつかってみた。Relationshipをつけよう【part 3】

 

参考

SwiftでCoreData

 

魚ライン 魚ライン

Swiftの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン