类别NSMutableArray Objective-C的扩展

时间:2016-11-13 13:55:27

标签: objective-c sorting nsarray

我是一名初学程序员,我获得了编写NSMutableArray类别扩展名的作业。用谷歌搜索,我发现很少的信息,并不明白如何做到这一点。 我需要写一个Shell排序的扩展。我可以使用NSSortDescriptor,但扩展应该使用排序算法,标准NSSortDescriptor方法不适用于此。如果存在某种普通的用户关联引用以及如何使用它,它确实有帮助。因为,我发现 - 不适合我。

1 个答案:

答案 0 :(得分:0)

所以这就是......

<强>的NSMutableArray + Sort.h

#import <Foundation/Foundation.h>
@interface NSMutableArray (Sort)

    -(void)sortArrayUsingShellSort;

@end

<强>的NSMutableArray + Sort.m

#import "NSMutableArray+Sort.h"
@implementation NSMutableArray (Sort)

    -(void)sortArrayUsingShellSort
    {
         // tasks
         // #1. access the unsorted array using self
         // #2. sort the array using your shell sort, no one gonna do that for you, you have to do that yourself. Re-arrange the items or the array.

    }

@end

shell排序的一些有用链接

  1. Tutorials point
  2. interactivepuython
  3. Wikipedia
  4. Toptal
  5. 进入你的 的的main.m

    #import <Foundation/Foundation.h> // not necessary actually, as it is already imported into our NSMutableArray+Sort.h
    #import "NSMutableArray+Sort.h"
    
    int main(int argc, char * argv[]) {
    
        NSMutableArray *myArray = [[NSMutableArray alloc] initWithArray:@[
                                                [NSNumber numberWithInt:10],
                                                [NSNumber numberWithInt:3],
                                                [NSNumber numberWithInt:4],
                                                [NSNumber numberWithInt:15]
                                                ]];
    
    
        NSLog(@"array before sorting %@", myArray);
    
        //here goes your sorting category function call
        [myArray sortArrayUsingShellSort];
    
        NSLog(@"array after sorting %@", myArray);
    }