2012-11-07 2 views
1

저는 iPhone 개발을 처음 사용하고 iOS에서 배열의 맞춤 정렬을 수행하기위한 지침이 필요합니다. UIPickerView에 나타나는 개체를 정렬하고 싶습니다. UIPickerView에 전달 된 개체는 배열에 있습니다.UIPickerView로 배열을 선택하기 전에 알파벳순으로 배열 정렬

내가 첫 번째 개체의 이름을 인쇄
"<ObjectsInfo: 0x1c5249f0>", 
    "<ObjectsInfo: 0x1c524940>", 
    "<ObjectsInfo: 0x1c5248e0>", 
    "<ObjectsInfo: 0x1c524890>", 
    "<ObjectsInfo: 0x1c524840>", 
    "<ObjectsInfo: 0x1c524a90>", 

:

ObjectsInfo *object = [objectModelName objectAtIndex:1]; 
    NSLog(@"%@",object.str_name); 

그것은 밖으로 출력을 : 알파

값 내가 배열을 인쇄 할 때

, 그것은 다음과 같습니다 주어진 예입니다. 배열 objectModelName을 사전 순으로 정렬하고 싶습니다.

어떻게하면됩니까?

나는이 시도 : 그것은 알파벳 순서에 있도록 내가 커스텀 STR_NAME에 따라 정렬이 어떻게해야합니까

[objectModelName sortUsingSelector:@selector(compare:)]; 

?를 몇 가지 지침이 필요합니다 ... 정말 도움을 주셔서 감사합니다 ...

답변

2

시도해보십시오.

NSArray *sortedArray = [objectModelName sortedArrayUsingComparator:^(ObjectsInfo *firstObject, ObjectsInfo *secondObject) { 
      return [firstObject.str_name compare:secondObject.str_name]; 
     }]; 
+0

내가 할 ObjectsInfo.m

에서
- (NSComparisonResult)compareItem:(ObjectsInfo *)anotherItem; 

: "호환되지 않는 포인터에서 '* NSMutableArray를 _strong을'로 지정 유형 '있는 NSArray * _strong'을" .... – lakesh

+0

어떻게 지정 하시겠습니까? – iDev

+0

코드 뒤에 sortedArray를 objectModelName에 다시 할당합니다. 그것은 다음과 같습니다 : NSArray * sortedArray = [objectModelName sortedArrayUsingComparator :^(ObjectsInfo * firstObject, ObjectsInfo * secondObject) { return [firstObject.str_name compare : secondObject.str_name]; }]; objectModelName = sortedArray; – lakesh

3

[objectModelName sortUsingSelector : @selector (compareItem :)]; ObjectsInfo.h에서

는 말한다
- (NSComparisonResult)compareItem:(ObjectsInfo *)anotherItem{ 

    return [self.str_name compare:anotherItem.str_name options:NSCaseInsensitiveSearch]; 

    } 
관련 문제