Cocoa提供的一些结构体
NSRange
typedef strust _NSRange
{
unsigned int location;
unsigned int length;
}NSRange;
这个结构体用来表示相关事物的范围,通常是字符串里的字符范围或者数组里的元素范围。Location字段存放该范围的起始位置而length字段则是该范围内所含元素的个数。location还可以用NSNotFound这个值来表示没有范围。
创建新的NSRange三种方式
//第一种方式
NSRange range;
range.location = 17;
range.length = 4;
//第二种方式
NSRange range = {17,4}
//第三种方式
NSRange range NSMakeRange(17,4)
使用NSMakeRange()的好处是可以在任何能够使用函数的地方使用它
[anObject flarbulateWithRange : NSMakeRange (13 ,15 )];
几何数据类型
CGPoint表示的是笛卡尔平面的坐标(x,y)
strust CGPoint
{
float x;
float y;
};
CGSize用来储存长度和宽度
strust CGSize
{
float width;
float height;
};
Cocoa提供了一个矩形数据类型,由坐标和大小复合而成
strust CGRect
{
CGPoint origin;
CGSize size;
}
Cocoa也提供了创建这些数据类型的快捷函数:CGPointMake()、CGSizeMake()和CGRectMake()。
NSString字符串
创建字符串
//第一种
NSString *str = @"string"
//第二种
NSString *str = [[NSString alloc] init];
str = @"string!";
[str release];
//第三种
NSString *str = [[NSString alloc] initWithString:@"string!"];
[str release];
//第四种
NSString *str;
str = [NSString stringWithFormat : @"Your age is %d",11]
关于大小
NSString中一个好用的方法(实例方法)是length,他返回的是字符串中字符的个数。
- (NSUInteger) length;
可以这样使用:
NSUInteger length = [str length];
也可以在表达式中使用它
if([str length] > 25)
{
NSLog(@"长度大于25");
}
大小写更变
三种方法的NSString类型的更改大小写:
NSString *string1 = @"ROSE INDIA";
NSString *upperString = [[NSString alloc] initWithFormat:string1];
NSString* changeString = [upperString lowercaseString];
NSLog(@"%@",changeString);
//rose india
写入文件
NSString *str = @"123123123";
// 如果文件不存在会自动创建一个
// 如果文件夹不存在,会直接报错
NSString *path = @"/Users/mac/Desktop/txt/3.txt";
NSError *error;
// YES代表要进行原子性操作,也就是会创建一个中间的临时文件
// 编码指定错误也会报错
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (error) {
// [error localizedDescription]会返回主要的错误信息
NSLog(@"写入失败:%@",[error localizedDescription]);
}else{
NSLog(@"写入成功");
}
字符串比较
NSString提供了几个用于比较的方法:
isEqualToString: 可以用来比较接收方和作为参数传递过来的字符串。返回一个BOOL值来表示两个字符串的内容是否相同。
- (BOOL) isEqualTostring: (NSString *) aString;
NSString *thing1 = @“hello 5”;
NSString *thing2 = [NSString stringWithFormat:@“hello %d, 5”];
if([thing1 isEqualTostring: thing2])
{
NSLog(@“They are the same!”)
}
compare:将接收对象和传递过来的字符串逐个进行比较,他返回一个NSComparisonResult来显示比较结果。
- (NSComparisonResult) compare: (NSString *) aString;
enum
{
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
不区分大小写的比较
compare:option:
-(NSComparisonResult) compare: (NSString *) aString options: (NSStringCompareOptions)mark;
options参数是一位掩位码。可以使用位或者bitwide-OR运算符( | )来添加选项标记。常用选项如下:
1>NSCaseInsensitiveSearch: 不区分大小写字符
2>NSLiteralSearch:进行完全比较,区分大小写字符
3>NSNumericSearch:比较字符串的字符个数,而不是字符串值。
假如想比较字符串,需要忽略大小写并按字符个数进行排序,那可以:
if([thing1 compare: thing2 options: NSCareInsensitiveSearch|NSNumericSearch]==NSOrderedSame)
{
NSLog(@“”They match!”);
}
字符串内查找字符串
检查字符串是否以另一个字符串开头
-(BOOL)hasPrefix:(NSString *) aString;
判断字符串是否以另一个字符串结尾
-(BOOL)hasSuffix:(NSString *) aString;
查找字符串里某处字符串的位置
-(NSRange) rangeOfString: (NSString *) aString;
可变性
NSString是不可变的,意味着NSString一旦创建就不能改变,可以执行任何各种各样的操作,生成新字符串、查找字符串、与其他字符串比较,但是不能以删除字符或者添加字符的方式去改变它。Cocoa提供了一个NSString的子类,叫做NSMutableString。
创建新的NSMutableString
+(id) stringWithCapacity: (NSUInteger) capacity;
NSMutableString *str = [NSMutableString stingWithCapacity:42];
附加字符串
//appendString:接收参数aString并且将其复制到接收对象的末尾
-(void) appendString: (NSString *) aString;
//appendFormat:和stringWithFormat类似,但并没有创建新的字符串,而是将格式化的字符串附加在接收字符串的末尾
-(void) appendFormat: (NSString *) format,…;
-(void) deleteCharactersInRange:(NSRange) aRange;
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net