如何在iPhone应用中看到Google文档已更改?

时间:2010-11-02 14:50:13

标签: iphone cocoa gdata-api multi-user

我是iPhone应用程序和GData API的新手。 我想为我的多用户应用程序使用Google文档,如数据存储,需要控制对数据的访问权限:

如果第一个用户获取数据,那么他可以阅读&写它,所有其他用户将只能阅读。但是当第一个用户完成数据工作并退出应用程序时,我希望第二个用户获得写作权。

帮助我找到解决这个问题的方法。

我的想法是这样的:我需要有两个文件,“ApplicationData”文件,我的数据将被存储,以及“DataInfo”文件,其中处理数据的用户名将按正确的顺序存储。当第一个用户退出时,他在“DataInfo”中删除了他的名字的第一行。而且只有读取权限的所有其他用户必须每分钟下载“DataInfo”(例如)并检查情况是否发生变化。但我很怀疑,这是解决我问题的好方法。我不认为,这对于一定数量的用户来说经常下载相同的文件是件好事。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

锁定其他用户可能无法可靠地工作,因为当应用程序意外退出时,应用程序几乎肯定会忽略“解锁”文档。

只要上传的Google文档更新在文档条目中具有正确的ETag属性(gd:etag),则尝试更新文档的客户端应用程序将收到错误,指示服务器上的文档已更改。然后,客户端应用程序必须从服务器下载版本并协调差异(如果有)。

如果不同的用户尝试编辑同一文档,您可能需要为文档设置适当的访问控制列表条目,以便所有用户都可以访问该文档。

虽然Google Docs旨在实现多个用户之间的同步实时协作,但Docs API并非如此。在多个用户正在积极尝试使用同一文档的情况下,您可能需要创建自己的服务器才能获得可靠的解决方案。