Fountation框架的简单使用

来源:互联网 发布:cf2.0优化 编辑:程序博客网 时间:2024/06/06 07:19

1、NSRange\CGRange

NSRange r1 = {2, 4};NSRange r2 = {.location = 2, .length = 4};NSRange r3 = NSMakeRange(2, 4);// string转range:NSRange range = [str rangeOfString:@"abc"];NSLog(@"location = %d, length = %d", range.location, range.length);// range的成员类型为unsigned long// range.location == NSUInteger == unsigned long// 如果range在字符串中不存在,那么length=0,location=NSNotFound// NSNotFound是一个枚举常量,值以%d打印为-1,以%ld打印为9223372036854775807

2、NSPoint\CGPoint || NSSize\CGSize || NSRect\CGRect

CGPoint p1 = NSMakePoint(10, 10);NSPoint p2 = CGPointMake(20, 20);// 最常用// 原点表示:(同理,size和rect都有zero常量)CGPointZero == CGPointMake(0, 0)NSSize s1 = CGSizeMake(100, 50);NSSize s2 = NSMakeSize(100, 50);CGSize s3 = NSMakeSize(200, 100);CGRect r1 = CGRectMake(0,0,100,50);// 打印CGRect如下:NSLog(@"x=%f, y=%f, width=%f, height=%f", r1.origin.x, r1.origin.y, r1.size.width, r1.size.height);// 但是上边的方法很麻烦,所以通常打印结构体会先将结构体转成字符串,再打印// point转字符串:NSString *str = NSStringFromPoint(p1);NSLog(@"%@", str);// size转字符串:NSString *str2 = NSStringFromSize(s1);// rect转字符串:NSString *str3 = NSStringFromRect(r1);// CGRect的另一种创建方式:CGRect r2 = {{0, 0}, {100, 90}};CGRect r3 = {p1, s1};// 对比两个point是否相等:(同理,size和rect也有此方法)Bool b = CGPointEqualToPoint(p1, p2);

3、NSString

// 把字符串输入到某个路径下的某个文件里[@"java\njava" writeToFile:@"/Users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];// 第二种方法:NSString *str = @"ABCDEFG";NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/my2.txt"];[str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];// NSMutableString可变字符串的使用:NSMutableString *s1 = [NSMutableString stringWithFormat:@"age is 10"];[s1 appendString:@" 11 12"];// 在s1后面追加字符串[s1 deleteCharactersInRange:NSMakeRange(4, 2)];// 删除isNSRange range = [s1 rangeOfString:@"is"];[s1 deleteCharactersInRange:range];// NSString的stringByAppendString方法生成一个新字符串,而不改变原来的字符串,因为NSString是不可变字符串NSString *s2 = [NSString stringWithFormat:@"age is 10"];NSString *s3 = [s2 stringByAppendString:@" 11 12"];
// 截取字符串方法NSString *str = @"itcast";NSString *str1 = [str substringWithRange:NSMakeRange(0, 4)];NSLog(@"%@", str1); // 输出为“itca”


4、NSArray

// OC数组只能存放OC对象,不能存放非OC对象类型,比如int、struct、enum等// 例如:Person *p = [[Person alloc] init];Person *person[5] = {p, [[Person alloc] init]};// 永远是空数组,因为不可变NSArray *array = [NSArray array];// 一个元素NSArray *array2 = [NSArray arrayWithObject:@"jack"];// 多个元素,以nil为数组结束标记,所以不能存放nil(类似\0)NSArray *array3 = [NSArray arrayWithObject:@"jack", @"rose", nil];// 快速创建数组对象NSArray *array4 = @[@"jack", @"rose", @"abcde"];// 获取数组的元素个数//[array3 count] == array3.count// 获取某个下标下的元素Nsstring *item = [array3 objectAtIndex:1];// 简化写法array3[1];// 遍历数组for(int i=0;i<array3.count;i++){NSLog(@"%@", array3[i]);}// 遍历数组的简化写法for(id obj in array3){// 元素位置int i = [array3 indexOfObject:obj];// obj是元素NSLog(@"%d-%@", i, obj);}// 数组遍历最简写法(利用block)[array3 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){// idx为数组下标,obj为元素,stop为控制是否退出循环的变量地址NSLog(@"%ld - %@", idx, obj);// 当idx等于1时if(idx == 1){// 退出循环*stop = YES;}}];

5、NSMutableArray

NSMutableArray *array = [NSMutableArray array];[array addObject:[[Person alloc]init]];[array addObject:@"jack"];NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];// 初始化数组// 删除全部元素[array removeAllObjects];// 删除指定元素[array removeObject:@"jack"];[array removeObjectAtIndex:2];5、NSSet/NSMutableSet(无序)// NSSet是无序的,所以不可以使用s2[0]来取元素NSSet *s = [NSSet set];NSSet *s2 = [NSSet setWithObjects:@"jack", @"rose", nil];NSString *str = [s2 anyObject];NSMutableSet *s = [NSMutableSet set];[s addObject:@"jack"];// 添加元素[s removeObject:@"jack"];// 删除元素

6、NSDictionary(无序)

// 创建字典NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];// 获取字典里的内容id *name = [dict objectForKey:@"name"];// 使用数组创建字典:NSArray *keys = @[@"name", @"address"];NSArray *objects = @[@"jack", @"beijing"];NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:objects forKeys:keys];// 取字典内容id obj = [dict2 objectForKey:@"address"];// 创建字典简化写法:NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"jack", @"name", @"beijing", @"address", nil];// 字典最简写法NSDictionary *dict4 = @{@"name":@"jack", @"address":@"beijing"};// 获取字典内容最简写法id obj = dict4[@"name"];// 获取键值对个数unsigned long num = dict4.count;

7、NSMutableDictionary(无序)

// 创建NSMutableDictionaryNSMutableDictionary *dict = [NSMutableDictionary dictionary];// 添加键值对[dict setObject:@"jack" forKey:@"name"];[dict setObject:@"beijing" forKey:@"address"];[dict setObject:@"rose" forKey:@"name"];// 获取键值NSString *str = dict[@"name"];// 移除键值对[dict removeObjectForKey:@"name"];// 遍历NSDictionary *dict = @{@"address":@"beijing", @"name":@"jack", @"qq":@"21341"};NSArray *keys = [dict allKeys];for(int i=0;i<dict.count;i++){NSString *key = keys[i];NSString *obj = dict[key];}// 遍历的简便方式(利用block)[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {NSLog(@"%@ - %@", key, obj);// 如果值等于jackif(obj == @"jack"){// 退出循环*stop = YES;}}];

8、NSNumber和NSValue

// 把基本数据类型封装成对象类型NSNumber *num = [NSNumber numberWithInt:10];NSNumber *num2 = [NSNumber numberWithDouble:10.5];// 把对象类型转成基本数据类型int i = [num intValue];double d = [num2 doubleValue];// 把字符串类型转成基本数据类型NSString *str = [NSString stringWithFormat:@"%d", 20];int a = [str intValue];// 包装数据类型的简化写法@20@YES// YES是常量1@'a'// 'a'是一个数字// 把变量包装成NSNumber类型int age = 25;@(age);// 如果不加括号,编译器会认为@age是关键字,但是又没有这个关键字,所以会报错// 将结构体包装成对象CGPoint p = CGPoint(10, 10);NSValue *value = [NSValue valueWithPoint:p];// 将value转为对应的结构体CGPoint p1 = [value pointValue];

9、NSDate

// 创建时间对象NSDate *date = [NSDate date];// NSDate是当前格林治时间// 比date晚5秒NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];// 从1970年开始,到date2的秒数NSTimeInterval seconds = [date2 timeIntervalSince1970];// date2和现在的时间相差多少秒NSTimeInerval seconds2 = [date2 timeIntervalSinceNow];// 日期格式化类NSDateFormatter *formatter = [[NSDateFormatter alloc] init];// y年M月d日// m分s秒H(24)时h(12)时formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";NSString *str = [formatter stringFromDate:date];// 字符串日期转为NSDateNSString *time = @"2011/09/10 18:56";// formatter去适配字符串日期的格式NSDateFormatter *formatter = [[NSDateFormatter alloc] init];formatter.dateFormat = @"yyyy/MM/dd HH:mm";// 根据formatter格式把字符串日期time转成NSDate类型的dateNSDate *date = [formatter dateFromString:time];

0 0
原创粉丝点击