gpt4 book ai didi

iphone - 像 SQL 一样使用 Core Data 计算列

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:20 27 4
gpt4 key购买 nike

我正在对商店进行排序以找到最近的商店。另外我想知道这家店离这里有多远。SQL 查询如下所示:

select *,

6371 * 2 * ATAN2(SQRT(POWER(SIN((RADIANS(?) - RADIANS(latitude))/2),2) + COS(RADIANS(latitude)) * COS(RADIANS(?)) * POWER(SIN((RADIANS(?) - RADIANS(longitude))/2),2)), SQRT(1-POWER(SIN((RADIANS(?) - RADIANS(latitude))/2),2) + COS(RADIANS(latitude)) * COS(RADIANS(?)) * POWER(SIN((RADIANS(?) - RADIANS(longitude))/2),2))) AS DISTANCE

FROM stores
ORDER BY DISTANCE

这些问号将被用户位置的经度和纬度所取代。(纬度,纬度,经度,纬度,纬度,经度)

如何使用 iPhone SDK 使用 Core Data 实现这一点?

最佳答案

CoreData 本身并不能真正做到这一点,因为此处的 distanceFromCurrentLocation 将是一个 transient 属性(并且您无法获取 transient 属性)。但是您仍然可以通过将对象提取到 NSMutableArray 中,然后根据 distanceFromCurrentLocation transient 属性对该数组进行排序,以自然的方式完成此操作。

根据您执行此操作的频率以及用户移动到需要重新计算的距离的频率,偶尔重新计算 -currentDistance 持久属性然后使用简单谓词可能会更有效。如果您更频繁地搜索用户移动,这是一个非常有效的解决方案,因为您可以轻松地保留单个 locationOfLastRecalculation 持久变量,并且仅在用户移动足够多时重新计算一次。由于这会在重启后持续存在,因此动态计算的整体性能改进可能是巨大的。

关于iphone - 像 SQL 一样使用 Core Data 计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1347013/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com