3

iPhone の Core Data を Sinatra サーバーの MongoDB と同期したい。

iPhone が Node.js チャット サーバーからメッセージを取得すると、メッセージには送信者の BSON ObjectId (文字列) が含まれます。iPhone がこのメッセージを保存するために、Core Data で同じ ID を持つユーザーを見つけます。のようなことができるようになりたいですobjectWithID。つまり、NSManagedObjectID を MongoDB BSON ObjectId と同じに設定したいと考えています。他に確認することは、managedObjectContext に送信者の ID を持つユーザーがいない場合、persistentStore からそのユーザーを取得し、存在しない場合は作成します。Message と Sender の間の関係を維持するためだけに、これを行うには多くの作業が必要です。たぶん、Message オブジェクトの送信者属性を、User NSManagedObject としてではなく、文字列として BSON ObjectId として保存する必要があります。

おすすめは何ですか?iPhoneでもMongoDBを使用する必要がありますか? そのためのObjective-Cドライバーがあることに気づきました。しかし、私は Core Data のコツをつかみ始めたばかりで、使いたくなるクールなもの (元に戻すサポートなど) があります... 今は、単純なフェッチと永続的なストレージに使用しているだけなので、それを置き換えることができます。しかし、私はそれが良いユーザビリティだと思うという理由だけで、将来的にアンドゥのサポートを実装する予定です. 確認のポップアップに答える必要があるよりも、元に戻すオプションの方が好きです。たとえば、GMail でメッセージの送信を元に戻したり、メッセージの削除を元に戻したりできる方法が気に入っています。

ありがとう!

マット

4

1 に答える 1

3

コア データ オブジェクトの objectID を手動で設定することはできません。おそらく、externalID と呼ばれる属性、またはサーバーから取得した ID を格納するものを追加する必要があります。

Core Data を使用するかどうかについての考えについては、この記事を参照してください。著者の推奨は、ほぼすべてのケースで Core Data を使用することです。

于 2010-10-17T03:38:25.113 に答える