A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董月峰 高级黑马   /  2014-4-13 15:25  /  1357 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 董月峰 于 2014-4-13 15:29 编辑

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

//    NSNumber *numOc = [NSNumber numberWithInt:-28];
//   
//    NSLog(@"%@", numOc);


    NSMutableArray *array = [NSMutableArray arrayWithObjects: @1, @9, nil];
    NSNumber *numOc = [NSNumber numberWithInt:-28];
    [array addObject:numOc];

    NSArray *sortedArray = [array sortedArrayUsingSelector: @selector( compare: )];

    NSLog(@"%@", sortedArray);




    return 0;
}
这样输出的结果是:
(
    "-28",
    1,
    9

)
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    NSNumber *numOc = [NSNumber numberWithInt:-28];

    NSLog(@"%@", numOc);


//    NSMutableArray *array = [NSMutableArray arrayWithObjects: @1, @9, nil];
//    NSNumber *numOc = [NSNumber numberWithInt:-28];
//    [array addObject:numOc];
//   
//    NSArray *sortedArray = [array sortedArrayUsingSelector: @selector( compare: )];
//   
//    NSLog(@"%@", sortedArray);




    return 0;
}

这样输出的结果是:-28

疑惑:请问为什么同一个NSNumber型的负整数单独打印和在数组中打印不同?

评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

2 个回复

倒序浏览
:'(没人回答啊
回复 使用道具 举报
单独打印numOc是-28没错,但是这段代码如下
  1. #import <Foundation/Foundation.h>


  2. int main(int argc, const char * argv[])
  3. {


  4. //    NSNumber *numOc = [NSNumber numberWithInt:-28];
  5. //   
  6. //    NSLog(@"%@", numOc);



  7.     NSMutableArray *array = [NSMutableArray arrayWithObjects: @1, @9, nil];
  8.     NSNumber *numOc = [NSNumber numberWithInt:-28];
  9.     [array addObject:numOc];


  10.     NSArray *sortedArray = [array sortedArrayUsingSelector: @selector( compare: )];


  11.     NSLog(@"%@", sortedArray);





  12.     return 0;
  13. }
复制代码


其中 [array addObject:numOc];是在数组尾部插入-28,但是 [array sortedArrayUsingSelector: @selector( compare: )];这步你是不是把复写的方法写成从小到大的方式排序了啊。比如你在写compare的方法时写了像这样升序的代码
  1. return result == NSOrderedDescending;
复制代码

如果有类似这样的我估计是被你自己的compare的方法升序排序了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马