2012-10-11 1 views
0

"TruckNumber"라는 코어 데이터 엔티티가 있습니다.이 엔티티는 단지 속성 인 문자열을 가지고 있습니다. 문자열은 대개 1-3 자리 정수 (문자열)이지만 때로는 TMP9와 같은 문자를 포함 할 수 있습니다. 속성의 이름은 "itsNotANumma"입니다. 피커를 채우려는 요청을 가져 오는 중이지만 정렬되지 않고 이유를 모르겠습니다. 나는 다른 피커를 위해 다른 엔티티에서이 정확한 기술을 사용했지만 결코 문제가 없었습니다.NSSortDescriptor가 작동하지 않습니다.

다음
// Fetch truck numbers 
NSFetchRequest *truckNumberFetchRequest = [[NSFetchRequest alloc] init]; 

NSEntityDescription *truckEntity = [NSEntityDescription entityForName:@"TruckNumber" inManagedObjectContext:self.managedObjectContext]; 
[truckNumberFetchRequest setEntity:truckEntity]; 

// Sort Descriptor 
NSSortDescriptor *truckDescriptor = [[NSSortDescriptor alloc] initWithKey:@"itsNotANumma" ascending:YES]; 

NSArray *truckSortDescriptors = [[NSArray alloc] initWithObjects:truckDescriptor, nil]; 
[inventoryFetchRequest setSortDescriptors:truckSortDescriptors]; 
error = nil; 
NSArray *truckResults = [managedObjectContext executeFetchRequest:truckNumberFetchRequest error:&error]; 

if (error) 
    NSLog(@"Unresolved error while saving context: %@, %@", error, [error userInfo]); 

truckNumbersArray = [[NSMutableArray alloc] init]; 
for (TruckNumber *truckNumber in truckResults) 
{ 
    [truckNumbersArray addObject:truckNumber.itsNotANumma]; 
} 

트럭 번호에 대한 내 데이터 모델입니다 : 여기에 관련 코드는 ... 도와주세요

enter image description here

답변

2

당신은 다음과 같습니다 enter image description here

이러한 결과는 간단한 오타 :

[inventoryFetchRequest setSortDescriptors:truckSortDescriptors]; 

는해야합니다 내가 그 코드를 읽고, 어쨌든 가정 것이다

[truckNumberFetchRequest setSortDescriptors:truckSortDescriptors]; 

.

+0

Grrrrrrrrrr .... 감사합니다. 그것이 가능하면 9 분 안에 대답으로 받아 들일 것입니다. 감사. – HackyStack

+0

때로는 나무 숲을 볼 수없는 경우가 있습니다. 다시 한번 감사드립니다. 나는 너에게 경의를 표하는 30 초 동안 내 머리를 수치스러워 할 것이다 :-) – HackyStack

+0

문제 없어요! 두 번째 눈 쌍이되어 기꺼이 오타를 발견하게되어 기쁩니다 .--). – mattjgalloway

0
[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES comparator:^(id obj1, id obj2){ 
    return [(NSString*)obj1 compare:(NSString*)obj2 options:NSNumericSearch]; 
}]; 

숫자가 1-5000 또는 그 이후이면 완벽하게 작동합니다.

관련 문제