------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、Foundation框架简介
1、Foundation框架的作用
1>开发oc、ios、Mac程序必备的框架,是其它所有IOS框架的基础
2>此框架中包含了很多常用的API(应用编程接口)
3>框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可
2. Foundation框架的主头文件名称就是Foundation.h
3. Foundation框架包含了很多数据类型(结构体,枚举)和类
Foundation框架中常用的类有:
NSString——字符串;NSArray——数组;NSNumber——数字;NSDate——日期
NSData——数据;NSDictionary——字典
二、Foundation框架中的结构体
Foundation框架中的结构体(NSRange,NSPoint(CGPoint),NSSize(CGSize),NSRect (CGRect))
1、将结构体转换为字符串:
CGPoint P1=NSMakePoint(10,10);
NSString*str =NSStringFromPoint(P1); //将P1这个结构体转成字符串
NSLog(@"%@",str); // 输出结果为{10,10}
2、结构体的其它用法
1. 坐标原点的表示方法
1> CGPointMake(0,0)
2> CGPoint Zero
2. 判断两个点是否相同(BOOL类型)
CGPoint EqualToPoint((CGPoint point1),(CGPoint point2))
//可以将 CGPoint换成CGSize或者 CGRect
3. 判断一个点是否在一个范围内
CGRectContainsPoint((CGRect rect),(CGPoint point))
使用这些函数的前提是CoreGraphics框架
三、NSSet和NSMutableset(无序的)
1. NSSet(不可变)
创建
NSSet *s=[NSSet set]; //空的set
NSSet *s2=[NSSet SetWithObect:@"jack",@"rose",nil];
随机拿出一个对象
NSString *str=[s2 anyobject];
2. NSMutableSet(子类)(可变)
创建
NSMutableSet *s=[NSMutableSet set]
添加元素
[s addobject:"@hake"]
删除元素
[s removeAllobject] //删除所有元素
[s removeAllobject::"@hake"] //删除指定元素
四、字典NSDictionary和NSMutableDictionary(无序的)
1. NSDictionary(不可变)
创建
NSDictionary*dict=[ NSDictionaryWithObject:@"jack"for key:@"name"];
//一对键值,根据name可以找到jack
字典就是通过key(索引)----------->value(值)
字典存储的东西都是键值对
访问name对应的值:[dict objectForkey:@"name"];
NSArray*keys=@[@"name",@"address"];
NSArray*objects=@[@"jack",@" 北京"];
NSDictionary*dict=[NSDictionary DictionaryWithObject :objectsfor key:keys];
//根据keys找objects
快速创建
NSDictionary*dict=@{@"name":@"jack",@"address":" 北京"};
id obj=dict[@"name"];//拿出name对应的值
遍历
NSDictionary*dict=@{@"name":@"jack",@@"address":" 北京"};
1> for循环
NSString *keys=[dict allkeys];
for(int i=0;i
{
NSString *key=keys[i];
NSString *object=dict[key];
NSLog(@"%@=%@",key,object);
}
2>block方法
[dict enumeratekeysAndobjectsUsingBlock:
^(id key,id obj,BOOL*stop){NSLog(@"%@=%@",key,object);}]
2. NSMutableDictionary(可变的)
创建
NSMutableDictionary*dict=[ NSMutableDictionary dictionary]; //空字典
添加键值对
[dict setobject:@"jack" for key :@"name"];
[dict setobject:@"rose" for key :@"name"]; //会将"jack"覆盖
删除键值对
[dict removeobjectForkey:(id)]
NSMutableDictionary 不能使用快速创建
五、NSNumber和NSvalue
把基本数据类型包装成OC 对象:NSNumber*num=[NSNumber numberWithInt:10]
NSDictionary*dict=@{@"name":@"jack",@"age":" num"};
NSNumber*num2=dict[@"age"];
//取出的age还是OC对象
int a=[num2 intvalue];//将num2(OC对象)转为基本数据类型
@20 //将基本数据类型快速转化成OC对象(@"20")
@"A":NSString对象
@'A' 将字符包装成一个NSNumber对象
int age=100
@(age)//将age包装成NSNumber对象
将结构体包装成OC 对象
CGPoint =CGPointMake(10,10);// 结构体
NSvalue value=[NSvalue valueWithPoint :p]//把结构体转为OC 对象
NSArray *array=@[value];//把对象放进数组
[value pointValue];//把value转为对应的结构体
NSnumber之所以能将基本数据类型包装成OC对象,是因为它继承了NSvalue
六、NSDate
创建一个时间对象
NSDate *date=[NSDate date];
NSLog(@"%@",date);//打印出的时间是0时区的时间
NSDate *date=[NSDate dateWithTimeInterval:5 sinceDate:date];//date2比date晚5秒
NSTimeIntelval seconds={date timeInterval since 1970};// 从1970开始走过的秒数
日期格式化类(date转string)
1> NSDate date=[NSDate date];
NSDateFormatter *formatter=[[NSDateFormatter alloc]init]
formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";
NSString *str=[formatter stringFormDate:date];
NSLog(@"%@"str);//y年M月d日 m分s秒H(24小时制)h(12小时制)
2> NSString转NSDate
NSString *time=@"2011/09/10 18:56";
NSDateFormatter *formatter=@"yyyy-MM-dd HH:mm:ss";
NSDate date=[formatter dateFromString:time];
NSLog(@"%@",date);