首先新建Category为convert     Category on为NSMutableArray的工程

可以看见.h的文件名为NSMutableArray+convert.h

.m 文件名为NSMutableArray+convert.m

NSMutableArray+convert.h文件的写法是

#import <Foundation/Foundation.h>
@interface NSMutableArray (convert)
- (NSMutableArray *)convert:(NSMutableArray *)array;
- (NSArray *)convert1:(NSArray *)array;
- (NSMutableArray *)convert2:(NSMutableArray *)array;
@end

NSMutableArray+convert.h文件的写法是

#import "NSMutableArray+convert.h"
@implementation NSMutableArray (convert)
- (NSMutableArray *)convert:(NSMutableArray *)array
{NSInteger count = [array count];for (int i = 0; i < count; i++) {for (int j = 0; j < count - i - 1; j++) {// if ([[array objectAtIndex:j] intValue] > [[array objectAtIndex:(j + 1)] intValue]) {//                if([[array objectAtIndex:j] compare:[array objectAtIndex:j + 1]] == -1){if([[array objectAtIndex:j] compare:[array objectAtIndex:j + 1] options:NSNumericSearch] == -1){  //potions  NSNumericSearch = 64,[array exchangeObjectAtIndex:j withObjectAtIndex:(j + 1)];}}}for (NSString *i in array) {NSLog(@"冒泡排序降序:%@", i);}return array;
}
- (NSArray *)convert1:(NSArray *)array
{
//    NSInteger count = [array count];array = [[array reverseObjectEnumerator] allObjects];   //数组倒叙排列for (NSString *i in array) {NSLog(@"数组倒叙输出,用方法%@", i);}return array;
}
- (NSMutableArray *)convert2:(NSMutableArray *)array
{NSInteger count = [array count];for (int j = 0; j < count / 2; j++) {// if ([[array objectAtIndex:j] intValue] > [[array objectAtIndex:(j + 1)] intValue]) {//                if([[array objectAtIndex:j] compare:[array objectAtIndex:j + 1]] == -1){//            if([[array objectAtIndex:i] compare:[array objectAtIndex:j + 1] options:NSNumericSearch] == -1){  //potions  NSNumericSearch = 64,[array exchangeObjectAtIndex:j withObjectAtIndex:(count - j - 1)];}for (NSString *i in array) {NSLog(@"数组倒序输出,交换位置%@", i);}return array;
}
@end

main.m文件中代码

#import <Foundation/Foundation.h>
#import "NSMutableArray+convert.h"
int main(int argc, const char * argv[])
{@autoreleasepool {NSMutableArray *array = [NSMutableArray arrayWithObjects:@"34",@"8",@"32",@"90",@"33",@"78",@"30", nil];[array convert:array];NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"34",@"8",@"32",@"90",@"33",@"78",@"30", nil];[array1 convert1:array1];NSMutableArray *array2 = [NSMutableArray arrayWithObjects:@"34",@"8",@"32",@"90",@"33",@"78",@"30", nil];[array2 convert2:array2];}return 0;
}

类目Category

  • Category也叫分类或类目

  • 主要作用是为 没有源代码 的类添加方法。

  • 通过Category添加的方法会成为原类的一部分。从而达到扩展一 类的功能。

Category的定义

  • 新建文件

  • 选择Objective-C Category模板

  • 填写类名和分类名

  • .h文件添加方法声明

  • .m添加方法实现

  • 需要使用的地方进行调用。

Category的声明

  • NSString+SayHi.h文件

  • @interface NSString (SayHi)

  • - (void)hi;

  • @end

Category的实现

  • NSString+SayHi.m文件

  • #import “NSString+SayHi.h”

  • @implementation NSString(SayHi)

  • - (void)hi{

  • NSLog(@”这是通过category为NSString添加的hi方法”);

  • }

  • @end

转载于:https://blog.51cto.com/liuyafang/1543780

用category重写NSMutableArray排序,倒序相关推荐

  1. 【转】 [C/OC的那点事儿]NSMutableArray排序的三种实现(依赖学生成绩管理系统).

    原文网址:http://blog.csdn.net/ministarler/article/details/17018839 c语言实现的学生成绩管理系统是面向过程的,而OC实现的学生成绩管理系统则是 ...

  2. Axhub Charts学习记录贴-条形图添加正序排序/倒序排序功能

    axure中添加条形图与两个按钮,为方便操作,为按钮分别命名为"正序排序""倒序排序" 为按钮添加单击交互事件,选择"更新行",目标对象选择 ...

  3. python逆序排序_python排序倒序

    Python编程中常用的12种基础知识 Python编程中常用的12种基础知识,其中肯定有你不会的! 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串 2. ...

  4. python倒序排列_python排序倒序

    Python编程中常用的12种基础知识 Python编程中常用的12种基础知识,其中肯定有你不会的! 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串 2. ...

  5. NSMutableArray 排序

    NSMutableArray *array1=[NSMutableArray arrayWithObjects:@"1",@"3",@"2" ...

  6. Foundation 框架 NSArray、NSMutableArray排序

    一.使用selector对数组进行排序(无返回) 数组 book 中包含 AddressCard对象. 1.对数组调用 sortUsingSelector方法 1 -(void) sortByName ...

  7. JavaScript对数组操作。添加/删除/截取/排序/倒序

    js对数组对象的操作以及方法的使用 如何声明创建一个数组对象: var arr = new Array(); 或者 var arr = []; 如何移除所有数组中数据? arrayJson.dataL ...

  8. Java 重写ArrayList排序

    //排序 Collections.sort(mapCountList,new Comparator<MapCount>() { @Override      public int comp ...

  9. C#文件和文件文件夹按时间、名称排序-顺序与倒序

    对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间.按文件名排序.在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常 ...

  10. Category 的一些事

    来源:伯乐在线 - Tsui YuenHong 链接:http://ios.jobbole.com/90422/ 点击 → 申请加入伯乐在线专栏作者 新增实践部分:偏方 Hook 进某些方法来添加功能 ...

最新文章

  1. JSP笔记-点击量统计
  2. iOS Extension 里的方法不执行
  3. 图片Alpha预乘的作用[转]
  4. 机房防雷接地的黄铜排(黄铜带)与紫铜排(紫铜带)的区别与应用
  5. POJ-1384 Piggy-Bank 多重背包变形
  6. 快了!CVPR 2019 所有录用论文题目列表刊出,即将开放下载!
  7. (13) css浮动补充
  8. 【机器学习】集成学习--随机森林(Random Forest)
  9. 谱比法计算岩石的品质因子的c语言程序,地层品质因子计算方法及系统与流程...
  10. jdbc oracle clob blob long类型数据
  11. 数据结构实验病毒感染检测问题(C++)
  12. VMware esxi在线增加Linux LVM硬盘不需重新启动
  13. JavaSwing订餐管理系统
  14. html怎么制作图片按钮效果,如何制作一个漂亮的 CSS 按钮
  15. 【Qt】Qt项目打包
  16. Notepad++ 无法安装 HexEditor 插件 / 安装之后闪退
  17. setTimeout 实现 setInterval
  18. 全数字锁相环基本原理讲解
  19. python 踩坑之解决django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you insta
  20. 云计算的云指的是什么?通俗解释云计算能做什么

热门文章

  1. 英式和美式的单词拼写差异详细对照表
  2. 三基色、对比色、互补色之间的关系,图片调色基础
  3. 可以用php做出一个圆锥吗,PS使用渐变工具画一个立体圆锥
  4. 牛客练习赛34-C.(前缀和)
  5. HDMI音视频传输协议
  6. 声音莫名从扬声器切换到听筒_扬声器听筒的切换
  7. android获取摄像头视频分辨率,相机自定义拍照录像,可设置分辨率、焦距、无声录像、支持横竖屏...
  8. 计算机 无法自检,电脑开机不能自检是什么原因 电脑不能完成自检解决办法
  9. 微信公众平台自动回复详解
  10. 微软「警告」员工不要在愚人节搞事情,为什么?