|
|
1
8
SYNCML规范可能会有所帮助,但很难阅读,而且明显偏向于SYNCML。 我必须为任务教练实施这一点,所以这里有几个想法: 修改标志就足够了,时间戳并不能提供更多的信息。通常,我的对象处于以下状态之一:
修改对象时会发生以下转换:
删除时的以下内容:
同步时,设备首先向桌面发送状态不同于“无”的所有对象。如果其中一个具有状态,桌面会要求用户解决冲突!=侧面无。在任何情况下,对象在设备上都会进入“无”状态,或者在其状态被删除时从存储中删除。 然后,桌面将自己的更改发送到设备。由于设备上的所有对象都处于“无”状态,因此不可能发生冲突。桌面上的对象进入无状态,或者也从存储中删除,同步结束。 根据设备/桌面状态,可能存在两种类型的冲突:
如果为每个字段保留修改状态,则可以避免一些冲突,例如,设备上具有修改主题的对象和桌面上的修改摘要不会触发冲突。 例如,您可以查看任务coach的代码(sourceforge上的SVN存储库,它既有python中的桌面应用程序,也有iphone应用程序)。实际上,在本例中,我决定使用一种更简单的方法;我不跟踪桌面上的状态。在第1阶段(设备到桌面)之后,我只需将设备上的对象完全替换为桌面上的对象。因此,没有冲突(设备总是获胜)。 显然,这只在两个固定设备之间工作;如果要与多个电话/桌面应用程序同步,则必须为每个设备/应用程序分配一个唯一的ID,并为不同的设备/应用程序保留不同的状态。这可能会开始发毛。 高温高压 |
|
|
George Kim · 如何在iOS中模拟特定坐标空间中的触摸? 2 年前 |
|
|
BENG · 协调C++和Objective-C中结构的填充 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 3 年前 |
|
|
Community wiki · 在OpenGL中显示YUV 3 年前 |
|
|
YosiFZ · pod更新依赖关系pod 3 年前 |
|
|
Community wiki · 查找iOS日历 3 年前 |