黑马程序员技术交流社区
标题:
求大神解答这题,困扰我好久
[打印本页]
作者:
埃林的奶酪
时间:
2015-6-1 04:12
标题:
求大神解答这题,困扰我好久
本帖最后由 埃林的奶酪 于 2015-6-1 04:14 编辑
使用Category给某个类增加一个方法,用来完成一下功能:假设一个OC可变数组数组存放着很多整数字符串,比如@"10"、@"20"。要求调用完这个方法后,这个数组里面是数字字符串是升序排列的(从小到大排列)我写的代码如下,输出顺序依然没变,求解
这是main函数
#import <Foundation/Foundation.h>
#import "Score.h"
#import "Score+paixu.h"
int main(int argc, const char * argv[])
{
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"19", @"18", @"17",@"16",@"15",nil]; //建个数组
paixu:array; //调用paixu方法,这里是不是有问题?不是很明白
NSLog(@"%@",array);
return 0;
}
复制代码
这是
Score+paixu.h文件
#import "Score.h"
@interface Score (paixu)
+ (NSMutableArray *)paixu:(NSMutableArray *)array; //声明方法名
@end
复制代码
这是Score+paixu.m文件
#import "Score+paixu.h"
@implementation Score (paixu)
+ (NSMutableArray *)paixu:(NSMutableArray *)array
{
NSUInteger n = [array count]; //数组元素个数
int a[n]; //这里是把数组中所有元素都转成int型数字, 并存入新建的int型数组
for (int i = 0; i < n ; i++) {
a[i] = [array[i] intValue];
}
for (int i = 0; i < n - 1 ; i++) { //冒泡排序
for (int j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
int c = a[j];
a[j] = a[j + 1];
a[j + 1] = c;
}
}
}
NSMutableArray *array1 = [NSMutableArray array]; //新建个空数组
for (int i = 0; i < n; i++) {
[array1 addObject:@(a[i])]; //把a数组中的数字依次包装后再加入这个空数组
}
return array1;
}
@end
复制代码
作者:
埃林的奶酪
时间:
2015-6-1 05:14
自己总算找出错误了,主函数里应该这么写
NSLog(@"%@",[Score paixu:array]);
作者:
13673696542
时间:
2015-6-1 12:59
不错,不错,自己解决啦,
作者:
talent123
时间:
2015-6-1 15:23
08行...直接一个冒号给我整蒙了
作者:
这是829
时间:
2015-6-2 00:19
我是来学习的!
作者:
蜡笔小炎
时间:
2015-6-2 01:15
埃林的奶酪 发表于 2015-6-1 05:14
自己总算找出错误了,主函数里应该这么写
NSLog(@"%@",[Score paixu:array]);
如果仅仅是解答这道题,为什么要用Score这个类呢?
直接给NSMutableArray做方法扩展一个实例方法不就好了吗?直接调用[array paixu];
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2