24. Foundation框架:
#import <Foundation/Foundation.h>
(1)数字、字符串和集合
<1>数字对象(NSNumber):NSNumber用于数字对象转换,将数字转化成NSInteger等,
+(NSNumber *)numberWithChar:(char)value;
+(NSNumber *)numberWithInt:(int)value;
+(NSNumber *)numberWithFloat:(float)value;
+(NSNumber *)numberWithBool:(BOOL)value;
通过实例方法重新获得基本类型
-(char)charValue;
NSNumber会对数据进行适当转换:如numberWithFloat创建,intValue取得
见下图
<2>字符串对象(NSString、NSMutableString---父子关系):
初始化:
+(id) stringWithFormat:(NSString *) format, ...;
NSString *test = [NSStringstringWithFormat: @”xyz%d”, 1];
关于大小
- (unsignedint)length
比较的策略
- (BOOL) isEqualToString:(NSString*)aString;
不要直接用==,用==比较的是指针的值
- (NSComparisonResult)compare:(NSString*)string
NSOrderedAscending
NSOrderedSame
NSOrderedDescending
不区分大小写的比较
compare:optinons
NSCaseInsensitiveSearch
NSLiteralSearch
NSNumericSearch
字符串是否包含别的字符串
hasPrefix
hasSuffix
rangeOfString:返回一个NSRangestruct
可变性
NSString是不可变的
NSMutableString是可变的,相当于Java的StringBuffer
+ (id)stringWithCapacity:(unsigned)capacity;
appendString或appendFormat追加可变字符串
- (void)deleteCharactersInRange:(NSRange)range;
NSMutableString是NSSring的子类,所以继承了stringWithFormat方法
见下图其中,NSRange表示范围:
NSRange,包含location和length,均为unsigned int类型,location表示位置,length表示长度,通常可用来表示字符串里字符范围或者数组中元素的范围
三种方法创建新的NSRange
1. 直接给字段赋值range.locaion = 17; range.length = 4;
2. C语言的聚合结构赋值机制:NSRangerange = {17,4};
3.Cocoa提供的函数NSMakeRange():NSRange range =NSMakeRange(17,4);