私はこれに数日間取り組んできましたが、これを最適に構成する方法がわからないようです。私は決してObjectiveCの専門家ではありません。
Drupalアプリケーション用のRESTfulAPIを開発しました。現在、AppStoreにASIHTTPRequestを使用して接続するiOSアプリがあります。ただし、ご存知の方もいらっしゃると思いますが、現在はサポートされていません。そこで、AFNetworkingに移行することにし、APIで使用するライブラリとしてオープンソース化できるように構築したいと考えています。
現在のアプリケーションはCoreDataを使用しており、SQLiteデータベースに入ってくるすべてのデータを保存します。現在のワークフローは次のようになります。
Get Request Receive JSON Parse and map JSON to CoreData NSManagedObject Save Context
皆さんが私にライブラリとしてオープンソースを提案するためにどのような道を提案するかについて、いくつか質問があります。
大まかな概要を説明するだけです。
メンバー、グループ、イベント、メッセージ(最も単純なもの)があります。
私がこれについて考えてきたいくつかの方法があります:
AFNetworkingAPI呼び出しと解析/マッピングメソッドをNSManagedObjectに追加します
私はこの概念が好きですが、それが理にかなっているかどうかはわかりません。コアデータスキーマはAPIのスキーマになり、それは素晴らしいことです。しかし、私の懸念は、これを使用している他の開発者が自分のアプリでコアデータを使用したくない場合はどうなるでしょうか?その上、複数のインスタンスを返すメソッドでどのように見えるかわかりません。たとえば、NSManagedObjectグループがある場合、グループのインデックスを取得するための呼び出しをどこに置くのですか?また、誰かを特定のコアデータモデルに固定するのでしょうか。それは良いことですか。
APIから独自のデータを取得し、それを独自のプロパティに解析してから、パブリックライブラリのどこかでNSManagedオブジェクトへのマッピングを行う方法を知っている個別のオブジェクトを用意します。
この方法も良いように聞こえますが、非常によく似たプロパティを持つ非常によく似たオブジェクトがあります。
カテゴリ
ここで、カテゴリを使用してメソッド を追加し、セカンダリ.h.mファイル を使用してNSManagedObjectにプロパティを追加できるものを読みました。それが理にかなっているかどうかはわかりません。
APIクラス、コアデータクラス、およびマッパークラス。
間違いなく厄介です。
より良い提案を歓迎します!
私は他のいくつかの例を見ようとしましたが、それらを適切に分析するのに十分なObjectiveCの知識がないと思います。
主な目標は次のとおりです。
他のアプリで再利用可能なリクエストライブラリに抽象化します。オブジェクトのスキーマを適用することはプラスです。ユーザーをCoreDataモデルに固定したり、必要がない場合はCoreDataを使用したりしないでください。
助けてくれてありがとう!