我想将iPhone上的核心数据与Sinatra服务器上的MongoDB同步。
当iPhone从Node.js聊天服务器收到一条消息时,该消息包含发送者的BSON ObjectId (一个字符串)。对于存储此消息的iPhone,我在核心数据中找到具有相同Id的用户。我希望能够做一些像objectWithID这样的事情。换句话说,我希望将NSManagedObjectID设置为与MongoDB BSON ObjectIds相同。我要检查的另一件事是,如果在managedObjectContext中没有具有发送者id的用户,我将从persistentStore中获取他,如果他不在那里,我将创建他。仅仅为了维护Message和Sender之间的关系,就有很多事情要做。也许我应该将消息对象的发送者属性作为字符串而不是用户NSManagedObject存储为他的BSON ObjectId。
你有什么建议吗?我应该在iPhone上也使用MongoDB吗?我刚刚意识到它有一个Objective-C驱动程序。但我刚刚开始掌握核心数据的诀窍,而且它有一些很酷的东西(比如撤销支持),我可能想用一下……现在,我只是将它用于简单的抓取和持久化存储,所以我可以替换它。但我计划在未来实现undo支持,只是因为我认为这是很好的可用性。我更喜欢撤销的选项,而不是回答确认弹出窗口,例如,我喜欢GMail让你撤销发送或撤销删除邮件的方式,等等。
谢谢!
哑光
发布于 2010-10-17 11:38:25
您不能手动设置核心数据对象的objectID。您可能想要添加一个名为externalID的属性或其他存储从服务器获得的ID的属性。
有关是否使用核心数据的一些想法,请参阅this article。请注意,作者的建议是在几乎所有情况下都坚持使用核心数据。
https://stackoverflow.com/questions/3951803
复制相似问题