------- android培训、.Net培训、IOS培训、碧空海的技术博客,期待与您交流!----------
第七讲 FOUNDATION
A.Foundation框架
1.Foundation框架包含了很多的数据类型:结构体、枚举、类。要想使用该框架必须包含主文件才可以#import <Foundation/Foundation.h>
2.Foundation框架中的结构体
1>NSRange结构体,参数有location(位置),length(长度)。
例如:
声明
Struct Date {
Int year;
Int month;
Int day;
}
赋值
Struct Date = {2015,02,10};或者{.month =02, .year = 2015, .day = 10};
NSRange举例;
NSRange r1 = {2, 4};//可读性差,不用
NSRange r1 = {.location = 2, .length = 4};//不用
字符串创建是:
NSString *str = @”I love oc”;
NSString range = [str rangeOfString:@”love”];//计算love在字符串str中的开始位置和长度,并返回对应的位置和长度。如果找不到对应的字符串返回位置NSNotFound(-1,整数打印形式)和长度0.
NSLog(@”loc = %d, leng = %d”, range.location, range.length);
3.CGPoint NSSize NSRect简介
CGPoint p1 = NSMakePoint(10, 10);
CGPoint p2 = CGPointMake(CGFloat x, CGFloat y);//开发中常用这用形式
NSSize s1 = CGSizeMake(100, 50);
NSSize s2 = NSMakeSize(100, 50);
NSSize s3 = NSMakeSize(200, 50);
NSRect等价于CSRect
CGRect r1 = CGRectMake(0, 0, 100, 50);
将结构体转为字符串这样写:
NSString *str = NSStringFromPoint(p1);
NSString *str = NSStringFromSize(s1);
NSString *str = NSStringFromRect(r1);
几种不同的表示方法。
CGRect r1 = CGRectMake(0, 0, 100, 50);
CGRect r2 = { {0, 0}, {100, 50} };
CGRect r3 = {p1, p2};
CGRect r4 = {CGRectPointZero, CGRectMake(100, 50)};
//比较两个POINT
CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10),);
//比较两个SIZE
CGSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(10, 10),);
//比较两个Rect
CGPointEqualToRect(CGRectMake(10, 10), CGRectMake(10, 10),);
B.Foundation常用类
1.NSString:不可变字符串
2.NSMutableString:可变字符串
//字符串创建
NSString *str = @”jack”;
NSString *str1= [[NSString alloc] initWithString:@”jack”];//不用这种写法
NSString *str3= [[NSString alloc] initWithFormat:@”age is %d”, 10];
怎么读取文件内容;
// URL:资源路径
// 协议头://路径
//file://文件资源路径
//ftp://
C.NSMutableString类(可变字符串类)使用
1.NSMutableString类继承于NSString 类。NSString中的方法,在NSMutableString类中可以调用。
2.此类在内存中的分类。
NSMutableString是可变字符串,可以使用字符串拼接方法来进行改变。
NSMutableString是可变字符串,也可以用删除方法来改变。可以现获取需要字符串位置,然后在进行删除。
D.集合类
1.OC类数组NSArray;只能存放OC对象,不能存放非OC对象类型,比如int、struct、enum等。不能够存放nil值。
NSArray *array = [NSArray array];//这个情况是永远是空数组。
NSArray *array2=[NSArray arrayWithObject:@”jack”];
NSArray *array3=[NSArray arrayWithObject:@”jack”, @”love”, nil];//nil是数组元素的结束标记
[array count];//这个是get方法获取
NSLog(@”%ld”,array2.count);
2.访问数组里面的数据
NSLog(@”%@”,array2[1]);
3.数组的遍历,快速遍历。
1>以前经常写的遍历方法
2>快速遍历方法写法
4.字典NSDictionary用法
1>根据索引找到文件内容。保存的都是键值对。
NSDictionary *dict = [NSDictionary dictionaryWithObject:@”jack”, forkey:@”name”];
Id obj= [dict objectForKey:@”name”];
NSLog(@”%@”, obj);
5.NSNumber类
NSNumber *num= [NSNumber numberWithInt:10];
NSNumber *num2= dict[@”age”];
Int a = [num2 intValue];
NSLog(@”%d”,a);
6.NSDate时间类
//创建一个时间对象
NSDate *date = [NSDate date];
//打印出来的时候是0时区的时间(北京-东8区)
NSLog(@”%@”, date);
//比当前时间晚5S
NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
//从1970开始走过的秒数
NSTimeInterval seconds = [date2 timeIntervalSince1970];
1>日期格式化
//创建一个时间对象,目的去显示到屏幕上,只有先转成字符串
NSDate *date = [NSDate date];
//在设置格式,用日期格式化类
NSDateFormater *formatter = [ [NSDateFormater alloc] init];
//设置格式
// y 年 M 月 d日
// m 分 s 秒 H(24)时 h(12)时
Formatter.dateFormater = @”yyyy-MM-dd HH:mm:ss”;
2>把时间转换成字符串时间