黑马程序员技术交流社区

标题: compared一个参数的疑问 [打印本页]

作者: Abuzzworld    时间: 2015-10-12 10:08
标题: compared一个参数的疑问
  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[]) {
  3.     @autoreleasepool {
  4.         NSString *str = @"ddddd";
  5.         NSString *str1 = @"abcBBaaaaa";
  6.         NSLog(@"%ld",[str compare:str1 options:NSNumericSearch]);
  7.     }
  8.     return 0;
  9. }
复制代码

  1. 2015-10-12 10:07:33.678 block[988:46230] 1
  2. Program ended with exit code: 0
复制代码


NSNumericSearch参数不是按字符个数比较么,为什么会输出1呢,正确不是应该输出-1么
作者: 布鲁兹老爷    时间: 2015-10-12 10:36
C语言里strcmp如果前面的字符串比后面的大,返回值是1. ddddd字符串比abcBBaaaa大,因为d的ASCII码比a大。OC的没用过这个方法,不太清楚。
作者: Abuzzworld    时间: 2015-10-12 13:23
{:3_54:}有人能指点下么
作者: jy00889669    时间: 2015-10-12 15:30
还没有看到那么后面呢。你真快
作者: lb930430    时间: 2015-10-14 18:01
  1. NSNumericSearch = 64,                /* Added in 10.2; Numbers within strings are compared using numeric value, that is, Foo2.txt < Foo7.txt < Foo25.txt; only applies to compare methods, not find */
复制代码

底层的解释是这样的,我测试了一下,是字符串中出现数字的使用的,比较的是字符串中数字的大小




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