一、Foundation框架常用结构体NSRange\CGRange、NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 的使用
1. 基本使用:
//NSRange的使用
NSRange r1 = NSMakeRange(2, 4); //第一个参数为.location 第二个参数为.length
NSString *str = @"学习OC";
NSRange range = [str rangeOfString:@"学习"]; //查找某个字符串在str字符串中的位置和长度
NSLog(@"loc = %ld, len = %ld",range.location, range.length);
NSRange range1 = [str rangeOfString:@"找不到"]; //查找某个字符串在str字符串中的位置和长度
NSLog(@"loc = %d, len = %ld",range1.location, range1.length); //如果找不到,location 的返回值为-1,要用%d输出location 的值才会有负号,默认的%ld是没有符号
//CGPoint的使用
CGPoint point1 = NSMakePoint(10, 10);
NSPoint point2 = CGPointMake(10, 10); //平常经常使用这种方法定义一个CGPoint 对象
//NSSzie的使用
NSSize size1 = CGSizeMake(10, 20);
CGSize size2 = NSMakeSize(10, 20);
//CGRect 的使用
CGRect rect1 = CGRectMake(0, 0, 50, 50);
CGRect rect2 = {point1, size1};
//打印结构体的方法
NSString *s = NSStringFromPoint(point1);
NSLog(@"%@",s);
NSString *s1 = NSStringFromRect(rect1);
NSLog(@"%@",s1);
2. 相关的其他方法
//判断结构体NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 包含的值是否相同的方法
CGPointEqualToPoint(point1, point2);
CGRectEqualToRect(rect1, rect2);
CGRectEqualToRect(rect1, rect2);
//判断某个rect是否包含某个点,必须引用框架CoreGraphic.framework,这样才能调用 CGRectContainsPoint方法
BOOL b1 = CGRectContainsPoint(rect1, point1);
NSLog(@"%d",b1);
return 0;
二、Foundation框架常用类
1.NSString
//创建字符串
NSString *s1 = @"test";
NSString *s2 = [[NSString alloc]initWithFormat:@"test is %c",'c'];
//此方法可以将c语言字符串转化为OC字符串
NSString *s3 = [[NSString alloc]initWithUTF8String:"name"];
//OC字符串转化为C语言字符串
const char *cs = [s3 UTF8String];
NSString *s4 = [[NSString alloc] initWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
[NSString stringWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
NSURL *url = [[NSURL alloc]initWithString:@"file:///Users/lpmac/Desktop/my.text"];
//类方法
[NSURL URLWithString:@"file:///Users/lpmac/Desktop/my.text"];
NSString *s5 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
//类方法
[NSString stringWithContentsOfFile:@"file:///Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",s5);
2.
NSMutableString的使用(动态字符串)
NSMutableString * mutableString1 = [NSMutableString stringWithFormat:@"test"];
//拼接字符串
[mutableString1 appendString:@"append str"];
//删除
NSRange range = [mutableString1 rangeOfString:@"test"];
[mutableString1 deleteCharactersInRange:range];
NSLog(@"%@",mutableString1);
3.NSArray 和 NSMutableArray
//数组的创建
NSArray *array = [NSArray arrayWithObject:@"test"];
NSArray *array1 = [NSArray arrayWithObjects:@"test1",@"test2",@"test2",nil];
NSArray *array2 = @[@"test1",@"test2",@"test2"]; //提倡快速写法
//数组访问
[array1 objectAtIndex:0];
array1[0]; //提倡
//数组的遍历
for (int i=0; i<array.count; i++) {
NSLog(@"%@",array[i]);
}
//快速遍历
for (id obj in array2) {
NSUInteger loc = [array2 indexOfObject:obj];
NSLog(@"%@,%ld",obj,loc);
}
[array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@,%ld",obj,idx);
if (idx == 1) {
*stop = YES;
}
}];
NSMutableArray 是动态数组不可使用语法@[] 来初始化