Siesta-Swift:有没有办法找出Resource.latestData是否已经改变?

时间:2018-06-02 20:58:11

标签: ios siesta-swift

我的代码如下所示:

let myAPI = Service(baseURL: "...")
myAPI.resource("/...").addObserver(owner: self) { resource, event in
}

如果网址总是返回200(不是301),是否有办法检查resourceevent数据本身,json内容是否已更改或是否为相同?

我想实现一个行为,即app在后台加载,只有在JSON本身发生变化时才会触发UI动作。

1 个答案:

答案 0 :(得分:0)

Siesta目前不支持这一点。在一般情况下,它不能自动执行此操作,因为对于每种类型的资源内容,没有普遍有效的“已更改”定义。 (即使资源内容为Equatable,并且恰好与您想要的“已更改”的定义相匹配,是否应将某些标题包含在相等的概念中?哪些标题??

304是一个很好的亮点:服务器,资源的真实仲裁者,声明它在语义上不变 - 以及关于“未更改”意味着在服务器上存在的所有API特定规则。

然而,这似乎是一个很好的事情,能够自定义。如果您希望看到它已实施,我建议您提交问题。

与此同时,您可以手动完成:使资源有效负载符合Equatable并在资源观察器中进行检查。如果你有性能敏感的更新,那么这种形状的方法有时会更有意义,因为你可以检查部分更改(例如,只更改了集合中的某些元素)。