转换sql语句以用于核心数据

时间:2011-08-04 17:42:02

标签: iphone objective-c

我有这样的声明,我试图弄清楚如何在核心数据中使用。

SELECT 
(3963.0 *  acos(sin(".$StartLat."/57.2958) *   sin(latitude/57.2958) + cos(".$StartLat."/57.2958) *  cos(latitude/57.2958) * cos(longitude/57.2958 - ".$StartLon."/57.2958)))   as distance 
FROM locations
ORDER BY distance
LIMIT 0, 10

我猜这是我需要修改的部分:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Title" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

提前致谢。

1 个答案:

答案 0 :(得分:3)

简单回答:你做不到。

真实答案:您还没有理解Core Data是什么。

核心数据不是数据库。它不是SQL。它不是任何形式或形式的关系数据库。

Core Data是一个框架,用于从内存中表示中抽象对象的持久性。它是一个对象管理框架。您通过对象与它进行交互。您不创建查询。您不执行SQL。您请求对象。全面展开,NSObject子类。

请阅读Core Data Programming Guide

(对不起,如果这种情况变得严厉,但这是一种常常被误解的事情,它是完全明确的)