类别 NSMutableArray 的扩展 Objective-C

Extension for category NSMutableArray Objective-C

我是一名初级程序员,我接到的任务是编写类别 NSMutableArray 的扩展。在谷歌搜索中,我发现的信息很少,也不知道该怎么做。 我需要为 Shell 排序写一个扩展。我可以使用NSSortDescriptor,但扩展应该给出排序算法,标准的NSSortDescriptor方法不适用于此。如果有某种普通用户的关联引用以及如何使用它,那真的很有帮助。因为,我发现的 - 不适合我。

所以这里是...

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

一些有用的 link 用于 shell 排序

  1. Tutorials point
  2. interactivepuython
  3. Wikipedia
  4. Toptal

进入你的 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);
}