因为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,同时,自会覆盖被替换的字符串,其他字符完好无损!!!
|