2010-09-17 3 views
1

Я пытаюсь сортировать массив из предыдущего поста я указал на ответ в этой теме, Sorting an array of doubles or CLLocationDistance values on the iPhoneСортировка ошибки массива?

Исходя из этого моего кода выглядит следующим образом:

NSArray *sortedArray = [listArray sortedArrayUsingFunction:intSort context:nil]; 


NSInteger intSort(id num1, id num2, void *dummy) 
{ 
    int v1 = [[num1 objectForKey:@"waypoint_order"] intValue]; 
    int v2 = [[num2 objectForKey:@"waypoint_order"] intValue]; 

    if (v1 < v2) 
     return NSOrderedAscending; 
    else if (v1 > v2) 
     return NSOrderedDescending; 
    else 
     return NSOrderedSame; 
} 

Но его сбой на line int v1 = [[num1 objectForKey: @ "waypoint_order"] intValue]; с 'objc_exception_throw'.

Что я делаю неправильно, я должен оставить некоторые функции.

С уважением, Стивен

+0

Какое исключение он выбрасывает? – zoul

+0

исключение из диапазона исключений? –

+0

- [NSManagedObject objectForKey:]: непризнанный селектор, отправленный в экземпляр 0x7a601f0. – Stephen

ответ

1

Если эти NSManagedObjects, вы хотите valueForKey :, не objectForKey:

как это ...

INT v1 = [[num1 valueForKey: @ "waypoint_order"] intValue];

Надеюсь, что это поможет.

+0

Firoze, спасибо большое за это, я не могу поверить, что пропустил это. Я должен был это знать. В последнее время я много работаю с NSManagedObjects. – Stephen

1
  1. проверка num1 словарь. это автореферат или выпустить его где-нибудь в программе.

  2. или проверить возврат значения по словарю, возможно, он возвращает нуль;

  3. см. LinkArray объект. На момент создания u назначил последнее значение нулю или нет. например: [[NSArray alloc]initWithObject:object1,object2,object3,nil];

+0

(1) Определенно, не выпущено автоматически, и я нигде не выпускаю его. (2) Как мне это сделать? (3) listArray создается из NSFetchRequest и определенно не имеет значения «nil» в конце. – Stephen

+0

У кого-нибудь какие-то мысли по этому поводу, у меня все еще есть проблемы. – Stephen

Смежные вопросы