黑马程序员技术交流社区

标题: NSnumber类型的负整数的一个疑惑 [打印本页]

作者: 董月峰    时间: 2014-4-13 15:25
标题: NSnumber类型的负整数的一个疑惑
本帖最后由 董月峰 于 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型的负整数单独打印和在数组中打印不同?

作者: 董月峰    时间: 2014-4-23 17:22
:'(没人回答啊
作者: Freedam    时间: 2014-4-23 21:48
单独打印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的方法升序排序了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2