ojective学习之四

来源:互联网 发布:qq安全中心钓鱼源码 编辑:程序博客网 时间:2024/04/30 06:56

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);