yasasii-team / Stepippo-iOS

初めての一歩を応援するアプリのiOS版
https://github.com/yasasii-team/Stepippo-iOS.git
21 stars 5 forks source link

Realmオブジェクトにアクセスするためのプロトコルを作成しました #133

Closed riscait closed 5 years ago

riscait commented 5 years ago

fixes #26

(#の後にcloseしたいissueの番号を記述してください)

Summary(要約)

読み込み(fetch) 書き込み(write) 削除(delete) プライマリキー発行(newPrimaryKey) のメソッドを作成

Realmオブジェクトにアクセスしたいクラスで、 このプロトコルを準拠して使ってください🙏

使い方

let ippo = IPPO()
ippo.name = "Zettaiyaruzo"
ippo.id = newPrimaryKey(objectType: IPPO.self)

write(ippo)
write(ippo, isUpdate: false)
update(with: 0, values: ["name": "Taro"])
update(with: 0, values: ["name": "Taro"], isUpdate: false)

let predicate = NSPredicate(format: "XXX", "YYY")
_ = fetch(IPPO.self)
_ = fetch(IPPO.self, predicate: predicate)
_ = fetch(IPPO.self, predicate: predicate, sortKeyPath: "id")
_ = fetch(IPPO.self, predicate: predicate, sortKeyPath: "id", isAcsending: false)

delete(object: ippo)
deleteAll()

Tested(テストしたこと)

準拠したクラスでメソッドが呼べること…

レビューポイント

命名が苦手で時間がかかります。 他にも代替案などありましたら、いただけると嬉しいです!

naipaka commented 5 years ago

プライマリキーを発行するメソッド名はcreatePrimaryKeyがいいかと思われます! そのほうがメソッド名からひと目で何をしているメソッドなのかがわかるかと思いました:sunny:

あとオブジェクトアクセスプロトコルはこうやって書くんですね!勉強になりました:sparkles:

riscait commented 5 years ago

@eyener3 承認ありがとうございます♪ 一つだけ命名を変更しました!

@naipaka ありがとうございます! ちょっと長いですが、分かりやすい名前を、と思い、 createIncrementedPrimaryKeyに変更しました!

もしこのプロトコルうまく使えなかったらすみません…! 使っていくうちに足りないところ等あれば追加したり修正したいと思っています💡

再レビューお願いします!