gpt4 book ai didi

objective-c - 是否可以在核心数据中使用自定义 sqlite 函数?

转载 作者:可可西里 更新时间:2023-11-01 06:12:07 26 4
gpt4 key购买 nike

在线上似乎没有任何内容,我需要运行按距用户当前位置的距离排序的提取查询。我的第一个计划是创建一个临时属性...

- (CLLocationDistance)distance {
return [self.location distanceFromLocation:locationManager.location];
}

但后来我发现核心数据不会基于 transient 属性获取,我认为可能是这种情况,因为获取变成了带有 ORDER BY 子句的 SELECT 语句,因此我的距离属性需要存在于数据库。

好吧,我的第二个想法是用与我在另一个项目中相同的方式实现这一点,该项目使用没有 Core Date 的 SQLite,使用由 sqlite3_create_function 创建的自定义 sqlite 函数...

static void sqliteDistance(sqlite3_context *context, int argc, sqlite3_value **argv) {
if(sqlite3_value_type(argv[0])==SQLITE_NULL || sqlite3_value_type(argv[1])==SQLITE_NULL) {
sqlite3_result_null(context);
} else {
sqlite3_result_double(context, [locationManager.location distanceFromLocation
[[CLLocation alloc] initWithLatitude: sqlite3_value_double(argv[0]) longitude: sqlite3_value_double(argv[1])]]);
}

现在的问题是如何从核心数据提取查询中调用此函数?我猜这可能是不可能的,因为核心数据的目的是抽象出后备存储的细节,但也许有人知道不同?

最佳答案

你是对的,使用 Core Data 是不可能的。不要忘记其他后备存储类型也是可能的。它将如何针对 XML 执行该查询?

如果您只需要对结果进行排序,为什么不在执行提取后在数组上设置排序描述符(假设数据集不是太大)?

关于objective-c - 是否可以在核心数据中使用自定义 sqlite 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9584189/

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