我有一个应用程序,其中包含核心数据中的一些位置,我想以接近用户位置的顺序向用户显示它们.我正在使用NSFetchedResultsController来为表视图提供位置.我考虑过创建一个虚拟访问器方法来返回位置与用户的距离,该方法将使用"全局"CoreLocationManager计算,但它会因原因而崩溃:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'在实体<NSSQLEntity Location id = 4>中找不到keypath distanceFromCurrentLocation'
我还给用户提供了按字母顺序排序的选项,所以如果可能的话,如果我保留了NSFetchedResultsController,我会更喜欢它.
我该怎么办?
谢谢!
我想在距离当前位置的距离上排序很多位置(航点).当然,当前位置是移动目标,因此对于每个位置更新,重新计算每个位置的距离是必要的.但只有重新计算附近的位置就足够了.
我目前使用核心数据,并在configurecell:atindexpath:方法中将距离存储为当前位置作为表中的属性(但仅在更改时更新).这类工作,但应用程序没有响应,而核心数据自动更新所有距离.这适用于250个位置,但是5000个崩溃.我需要它才能在10.000个位置工作,尽管我可能只需要距离最近的1000个位置.
我还没有尝试过的想法:将所有距离存储在一个单独的内存数组中,只记录记录ID和距离.然后按距离对数组进行排序.问题是我不能使用FetchedResultsController,因为数据库中没有排序字段.
使用谓词根据纬度和经度过滤位置.然后只显示过滤后的位置.
在单独的线程中重新计算距离.
这些想法似乎都不容易尝试.
任何有建议,不同想法,我的想法变化的人?
我有一个带有核心数据数据库的iPhone应用程序,其中包含一个位置列表,每个位置都有纬度/经度坐标.我该如何搜索距离我当前位置最近的10?
我是Core Data的新手,所以我的问题是如何进行查找,我知道如何获取当前位置等.我相信我需要设置一个带有查询字词的NSPredicate,但不确定应该如何编写.
谢谢,J
假设我有一个CoreData实体"Point",它有两个属性x和y(两个NSNumber).
NSPredicate如何让我找到最接近的点a,b?距离= sqrt((xa)(xa)+(yb)(yb))
虽然我可以定义一个计算到预定义点的距离的瞬态属性,但我无法看到在启动fetchrequest时如何以编程方式更改该点.
任何帮助将不胜感激.