OC- 배열 정렬 - NSSortDescriptor 사용
5786 단어 script
위의 간단한 기능을 빌려 Object-c의 정렬 설명 대상인 NSSortDescriptor가 그룹의 정렬에 대한 사용 방법을 알아보자.
간단하게 다음과 같은 몇 가지 종류를 알아보겠습니다. Student(학생류), MyClass(학급류)
Student:(인터페이스만)
1 @interface Student : NSObject
2 {
3 NSString * _name;
4 NSInteger _num;
5 NSInteger _score;
6 }
7
8 - (id)initWithName:(NSString *)name number:(NSInteger)num score:(NSInteger)score;
9 - (void)setName:(NSString *)name;
10 - (NSString *)name;
11 - (void)setNum:(NSInteger)num;
12 - (NSInteger)num;
13 - (void)setScore:(NSInteger)score;
14 - (NSInteger)score;
15
16 @end
MyClass:(커넥터)
@interface MyClass : NSObject
{
NSString * _className;
NSMutableArray * _stuList;
}
- (id)init;
- (void)setClassName:(NSString *)name;
- (NSString*)className;
- (void)addStudent:(Student *)student;
- (void)addStudent:(Student *)student atIndex:(NSInteger) index;
- (void)removeStudent:(Student *)student;
- (void)removeStudentAtIndex:(NSInteger) index;
- (void)replaceStudent:(Student *)student atIndex:(NSInteger) index;
- (void)showStuList;
- (void)sortedByNumber;//
- (void)sortedByScore;//
- (void)sortedByName;//
- (void)sortedByNameAscByNumDescByScoreAsc;
@end
MyClass: (구체적 실현 방법)
@implementation MyClass
- (void)sortedByNumber //
{
NSSortDescriptor *sd1 = [NSSortDescriptor sortDescriptorWithKey:@"_num" ascending:YES];
NSArray *sdArray = [NSArray arrayWithObjects:sd1, nil];
[_stuList sortUsingDescriptors:sdArray];
// [_stuList sortedArrayUsingDescriptors:sdArray];
}
- (void)sortedByScore //
{
NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"_score" ascending:NO];
NSArray *sdArray = [[NSArray alloc]initWithObjects:sd, nil];
[_stuList sortUsingDescriptors:sdArray];
}
- (void)sortedByName //
{
NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"_name" ascending:NO];
NSArray *sdArray = [[NSArray array] initWithObjects:sd, nil];
[_stuList sortUsingDescriptors:sdArray];
}
- (void)sortedByNameAscByNumDescByScoreAsc // , ,
{
NSSortDescriptor *sdName = [[NSSortDescriptor alloc]initWithKey:@"_name" ascending:YES];
NSSortDescriptor *sdNum = [[NSSortDescriptor alloc]initWithKey:@"_num" ascending:NO];
NSSortDescriptor *sdScore = [NSSortDescriptor sortDescriptorWithKey:@"_score" ascending:YES];
NSArray *sdArray = [[NSArray alloc] initWithObjects:sdName,sdNum,sdScore, nil];
[_stuList sortUsingDescriptors:sdArray];
}
@end
위의sortedByNameAscByNumDescByScoreAsc 방법으로 NSSortDescriptor 대상의 사용 방법을 분석합니다.
1. NSSortDescriptor 대상의 대상 방법인 initWithKey 또는 클래스 방법인sortDescriptorWithKey를 통해 NSSortDescriptor(정렬설명) 대상을 생성합니다. 이 대상은 정렬 키워드(이 키워드는 정렬할 그룹의 요소 대상의 속성)로 전송되고 이 키워드(속성)에 따라 오름차순 또는 내림차순으로 설정됩니다.
2. 하나의 배열에 NSSortDescriptor 객체(여러 개 가능)를 추가합니다.
3. 마지막으로 수조의 방법sortUsingDescriptors를 통해 두 번째 단계의 수조를 매개 변수로 전달하면 이미 정렬된 수조가 나온다.
이상의 방법은 가변수조와 불가변수조에 적용되지만, 방법은 약간 다르다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ActiveDirectory에 PowerShell로 사용자 일괄 등록사용자 계정 정보가 포함 된 CSV 파일을 준비하고 Active Directory에 일괄 등록하는 스크립트를 만듭니다. 1 행째를 헤더로 한 다음과 같은 CSV 파일을 입력 가능하고 임의로 열을 추가할 수 있다고 한...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.