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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wdcew 中级黑马   /  2015-8-19 23:05  /  587 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为int型,float型都是基本数据类型,并非对象,并不能对它们发送消息对他们发送消息,因此需要对此数据类型进行出创建对象:
方法一:
NSNumber *myNumber, *floatNumber, *intNumber;

  intNumber = [NSNumber numberWithInteger: 100];
    myInt = [intNumber integerValue];
    NSLog(@"%li",(long) myInt);
    myNumber = [NSNumber numberWithLong: 0xabcdef];
    NSLog(@"%lx", [myNumber longValue]);
    myNumber = [NSNumber numberWithChar: 'x'];
    NSLog(@"%c", [myNumber charValue]);
    floatNumber = [NSNumber numberWithFloat: 123.23];
    NSLog(@"%g", [myNumber floatValue]);
    myNumber = [NSNumber numberWithDouble: 1.23e+3];
    NSLog(@"%lg", [myNumber doubleValue]);
方法二:
        NSNumber * myNumber = [[NSNumber alloc] initWithInt:100];

两种方法的差别在于使用alloc版本的创建的对象需要自己 releas 或是加入releasepool中!
方法三:快速建立基本数据类型对象
  //也允许通过@表达式创建数字对象的!
    intNumber = @100;
    //检索实例的方法:
    myInt = [intNumber integerValue];
    //检索实例的方法:
    myNumber = @0xabcdf;
    NSLog(@"%lx", [myNumber longValue]);
    //检索实例的方法:
    myNumber = @'x';
    NSLog(@"%c", [myNumber charValue]);
    //检索实例的方法:
    floatNumber = @12.36;
    NSLog(@"%g", [myNumber floatValue]);
    //检索实例的方法:
    myNumber = @123.34e+1;
    NSLog(@"%lg", [myNumber doubleValue]);

2、字符串对象
1、字符串常量属于 NSConstantString类的常量字符串,对象NSConstanString类是NSString的子类。
2关于Description的描述方法:

3、关于一些不可变字符串的基本处理方法,现在读一些特殊的处理方法进行记录:
        compareResult = [str1 compare: str2];
compare方法 会返回一个NSComparisonResult枚举类型的变量如下:
enum {
   NSOrderedAscending = -1,
   NSOrderedSame,
   NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

    //将一个字符串复制到另一个字符串的末尾

    str2 = [str1 stringByAppendingString:str1];

将生成一个新的字符串变量(内存地址),不会影响 str1指向的字符串变量


1.索引字符串使用方法:
        res = [str1 substringWithRange:NSMakeRange(5, 6)];

其中,这个方法的参数是一个Range结构体类型的变量,使用NSMakeRange(int x, int y)返回一个 变量,其中 Range结构体如下:
        typedef struct _NSRange {
              NSUInteger location;
              NSUInteger length;
        } NSRange;
2./从一个字符串中查找一个字符串
    subRange = [str1 rangeOfString: @"string A”];
也是返回Range结构体类型的变量,如果找不到字符串,则是返回:subRange.location == NSNotFound

3)可变字符串对象的建立与操作
1.从不可变字符串变为可变字符串的方法:
    mstr = [NSMutableString stringWithString: str1];

2 查找字符串,将其删除
    // 查找然后将其删除
// 返回的时查找字符的 Range类型的变量的位置
    subrange = [mstr rangeOfString: @"string B and "];
    、、
    if (subrange.location != NSNotFound) {
      [mstr deleteCharactersInRange:subrange];
      NSLog(@"%@", mstr);

    }
返回的时查找字符的 Range类型的变量的位置,其中,方法deleteCharactersInRange:(Range) 参数依旧是一个Range结构体类型的变量

3.查找和替换所有匹配项:
     search = @"a";
      replace = @"X";

      subrange = [mstr rangeOfString: search];

      while(subrange.location != NSNotFound)
      {
        [mstr replaceCharactersInRange: subrange
                            withString: replace];
        subrange = [mstr rangeOfString: search];
      }
      NSLog(@"%@", mstr);

方法:[mstr replaceCharactersInRange: subrange
                   withString: replace];
需要提供 被替换字符串对象的Range类型的位置变量,以及替换的字符串对象replace,同时,自会覆盖被替换的字符串,其他字符完好无损!!!

1 个回复

倒序浏览
靠!!!!太吊了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马