SwiftでCoreDataを使う[create編]

こんにちは,よしむらです.

開発中のアプリには,簡単なデータベース機能が必要です.
そこでiOSのアプリでは最も一般的なCoreDataの基本的な検証をしています.
個人的に引掛かったエラーには[Error]として対策を書いています.

本日は,CoreDataを用いて,下記の3ステップまで実施します.
1)プロジェクトを作成する
2)テーブル定義をする
3)テーブルに値を入れる.

 

1)プロジェクトを作成する

createProject

Project Nameを入力したら,忘れずにUse CoreDataをチェックしましょう.

2)テーブルを定義する

createTable

 

左下の「Add Entity」ボタンを押して,Entityを作成しましょう.Oracleでいうところの,create tableみたいなものです.テーブル名はデフォルトでEntityになりますので,適当な名称に変更しましょう.(今回はSampleにしました.)

[Error] Name must begin with upper case letter.
エンティティ名は,先頭文字を大文字にする必要があります.

 

次は,属性の作成です.右下の「Add Attribute」ボタンを押して,属性(項目)を作成します.デフォルトは,「attribute」になるので,適当なカラム名に変更しましょう.(今回は,itemId(Integer16)とitemName(String)にしました.)

[Error] Name must begin with lower case letter.
Attributeは先頭文字を小文字にする必要がありますので注意です.

ここまで完了すれば,最後に下記の画像の様にメニューバーの「Editor」から「Create NSmanagedObject Subclass… 」を選んでください.
createNSSubclass

これでファイル群の中に,Sample.swiftというファイルが作成されたかと思います.
SampleSwift

3)テーブルに値を入れる

忘れてはいけないのが,下記のEntityのclassを修正することです.
デフォルトでは,Sampleだけになっているので,プロジェクト名.Sampleに変更しましょう.今回の場合だと,プロジェクト名がCoreDataSampleなので,
CoreDataSample.Sampleになります.
EntityName

ストーリボードに,ラベル1つとボタン2つを配置して,ViewControllerと関連付けをしてください.
ViewController

今回は,
「label」をmyLabel
「CREATE」ボタンをcreateと関連づけました.

さらに,データベースへのinsert処理(データ登録処理)のメソッドとして,insert関数を作成しました.

最後の方にある,下記の部分で登録する値を決定します.

[Error] No type named ‘XXXX’ in module ‘YYYYY’
エンティティ名(今回の場合Sample)とソースコードが一致していない場合が考えられます.

[Error] ‘Sample’ does not have a member named ‘XXXX’
エンティティの属性(Attribute)に指定した値とソースコードが一致していない場合が考えられます.

次に,ボタンを押した際にデータ登録処理が動作するように,createボタンのActionの中に,insert関数を呼び込みます.

これでデータ登録処理が完成です.
プロジェクトを実行して,ボタンを押してみてください.
エラーが表示されなければデータ登録処理ができていると思います.

次回は,本当に登録されているかを確認する方法を紹介します.


Add a Comment

メールアドレスが公開されることはありません。