ソフトウェア開発メモ

日々のソフトウェア設計、実装で考えている、気づいた事を書いています。それが真実か否かは保証しません。悪しからず。

iOSクラス探訪 〜Store/〜Library系クラス編

前回に引き続き、色々調べてみる。

 

 

   ドメイン駆動設計でいうリポジトリクラス?。名の通りエンティティ系オブジェクトを貯蔵し、各問い合わせに応じて取り出し、保存を行うタスクを持つクラスが多い。この名前を持つクラスも外部に提供するサービスがクラスによって違う。

 

    これらクラスのメインのタスクは問い合わせ処理だが、その自由度、提供IFはクラスによって違う。ガチガチで自由度が低かったり、 NSPredicateを生成して、問い合わせメソッドで指定したりと。

まあ、共通的な操作は似ているけど。

 

 あとなぜか、〜Repositoryというクラス名ものを持つクラスはない。他のプラットホームと文化が違うのかな? 

 

ALAssetsLibrary

  写真動画の取り出し、保存を行うクラス。写真へのアクセス権管理も行っており、認証状況を保持している。Blockベースで非同期で行う。厳密には、このクラスALAssetGroupの未把握してて、検索については、ALAssetGroupが出てくるだけである。写真にアクセスするには更にALAssetからたどる必要がある。

  

EKEventStore

これもALAssetLibraryと似たタスクを提供している。

特筆すべき点はNSPredicateを生成するタスクを要している。おそらく、アプリ的に抽出条件を永続化するニーズがあるためにそのようなタスクをサポートしているのだろう。

ACAcountStore

PKPassLibrary

これもALAssetLibraryと提供しているタスクは似ている。フィルターリングのそれはない。そんなニーズがないためであろうから?

MPMediaLibrary

こいつはいままで紹介したクラスと異なり、変更に関する通知や日時に関するタスクしかしない。iTunesのライブラリ周りなので保存機能はもちろんない。問い合わせ処理はMPMediaQueryさんに任せている。

NSAtomicStore,NSPersistentStore

NKLibrary