2011-08-04 11 views
3

私はコアデータでの使用方法を理解しようとしています。事前にコアデータで使用するためにsql文を変換する

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

[fetchRequest setSortDescriptors:sortDescriptors]; 

ありがとう:

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 

イム推測これは私が変更する必要がある部分です。

答えて

3

簡単な答え:できません。

本当の答え:あなたはコアデータが何であるか理解していません。

コアデータは、データベースではありません。それはSQLではありません。どのような形や形であれ、リレーショナルデータベースではありません。

コアデータは、オブジェクトのメモリ内表現からオブジェクトの永続性を抽象化するためのフレームワークです。これはオブジェクト管理フレームワークです。あなたはオブジェクトを介してそれとやりとりします。クエリは作成しません。 SQLは実行しません。あなたはオブジェクトを要求します。フルブロー、NSObjectサブクラス。

Core Data Programming Guideをご覧ください。

明確にするための

+0

おかげで(これはなどの過酷なオフ来るが、これは、それは完全に明示さ負うような一般的に誤理解のものであれば申し訳ありません)。私は自分のプロジェクトにsqliteを使ってしまった。 – user648753

+1

これはとても奇妙なコメントです。コアデータは、多くの場合、SQLite、つまりSQLによってサポートされます。同様に、HibernateはORM抽象化レイヤーです。もしあなたがどちらかを使用することができ、SQLがフードの下にあることを忘れてしまうと、あなたは困ってしまうでしょう。このようにhttp://stackoverflow.com/questions/97197/what-is-the-n1-selects-problem –

+0

DotネットフレームワークのORMは、プレーンSQLを使用してモデルを照会する方法も提供します.iOS 9も導入されました。私はオブジェクトに対してプレーンなSQLを使用することができます...コアデータのバックグラウンドがsqliteの場合は、コアデータが正しく動作することを期待してください。 – Manju

関連する問題