objective-c – 是否可以在核心数据中使用自定义sqlite函数?
发布时间:2020-12-16 06:59:09 所属栏目:百科 来源:网络整理
导读:似乎没有任何关于这个在线,我需要运行从用户当前位置的距离排序的获取查询.我的第一个计划是创造一个短暂的财产…… - (CLLocationDistance)distance { return [self.location distanceFromLocation:locationManager.location]; } 但后来我发现核心数据不会
似乎没有任何关于这个在线,我需要运行从用户当前位置的距离排序的获取查询.我的第一个计划是创造一个短暂的财产……
- (CLLocationDistance)distance { return [self.location distanceFromLocation:locationManager.location]; } 但后来我发现核心数据不会基于瞬态属性获取,我认为可能是这种情况,因为fetch被转换为带有ORDER BY子句的SELECT语句,因此我的distance属性需要存在于数据库中. 好的,所以我的第二个想法是实现这个,就像我在另一个使用SQLite而没有Core Date的项目中使用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执行该查询?
如果您只需要对结果进行排序,为什么在执行获取后不在数组上设置排序描述符(假设数据集不是太大)? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |