4
我正在使用CoreData的應用程序。有位置實體擁有經度和緯度值。我想要獲取按用戶位置排序的實體。 我嘗試設置排序描述符爲距離公式sqrt((x1 - x2)^ 2 +(y1 - y2)^ 2),但失敗,異常情況爲「... keypath ...未在實體中找到」。如何獲取按計算值排序的託管對象
NSString *distanceFormula = [NSString stringWithFormat:@"sqrt(((latitude - %f) * (latitude - %f)) + ((longitude - %f) * (longitude - %f)))",
location.coordinate.latitude,
location.coordinate.latitude,
location.coordinate.longitude,
location.coordinate.longitude];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:distanceFormula ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSError *error;
NSArray *result = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
我想獲取已排序的對象,而不是獲取它們,然後在代碼中進行排序。
任何提示讚賞。
你可以張貼反正很長的距離公式?先謝謝你。 – 2010-05-07 12:51:00
謝謝你不可饒恕。我在答案中加入了公式。 – mohsenr 2010-05-08 10:00:21