黑马程序员——OC基础---Foundation框架(一)
------- android培训、ios培训、期待与您交流! ----------
内容概括:
1、foundation中常用的结构体。
* NSRange
* NSPoint \ CGpoint
* NSSize \ CGSize
* NSRect \ CGRect
2、Foundation中常用的类。
3、OC集合NSArray和NSSet的使用。
一、结构体的使用。
1、NSRange(求范围和长度的结构体)
例:
NSString *str = @” i love OC”;
NSRange range = [ str rangeofstring :@”ve o”];
NSLog(@”loc = %d,length = %d”,range.location,range.length);
注意:(查找ve o在str中的范围和长度,如果找不到,length = 0,location = NSnotfound 。)
2、NSPoint \ CGpoint(表示坐标的数组。)
例:
CGPoint p1 = NSMakePoint(10,10);
NSPoint p2 = CGPointMake(10,10); // 最常用的坐标表示法。
3、NSPoint \ CGpoint(表示UI元素的长与宽。)
例:
NSSize s1 = CGSizeMake(100,50); // 表示宽为50,高为100.
NSSize s1 = NSMakeSize(100,50);
4、NSRect \ CGRect(表示UI元素的坐标及面积。)
例:
1> CGRect r1 = CGRectMake (0, 0, 50, 100); // (UI元素坐标(0,0)长100,宽 50.)
2> CGRect r2 = {{0,0} {100,90}};
3> CGRect r3 = {p1 s2};
注意: CGPointzero == CGPointMake(0,0)原点。
二、Foundation中常用的类
1、NSString (不可变字符串)
NSString *s = @”123”;
// 将@”112”拼到@”123”后面去创建一个新字符串。
NSString *s1 = [s stringByAppendingstring:@”112”];
// 将c字符串转为OC字符串。
NSString *s = [[ NSString alloc] intWithUTF8string:”231”];
// 将c字符串转为OC字符串
Char *s = [s UTF8string];
2、可变字符串。
NSMutablestring *s = [NSMutibleString stringWithFormal:@”age is 10”];
// 拼接内容到s1的后面去。
[s1 appendstring: @”11 12”];
1> 从第四位删去两个字符(删去is)
[ s1 deletecharacterInRange: NSMakeRange(4, 2)];
2> 找到字符串的位置后再删除
NSRange range = [ s deletecharacterInRange: Range];
三、OC集合的使用
1、NSArray(只能存放OC对象,不能存放其他类型)
// 创建一个NSArray对象,nil是数组结束的标志。
NSArray *array = [NSArry arraywithObject:@”rose”,@”jake”,nil];
NALog(@”%@”,array[1]); // 输出Jake
NALog(@”%d”,array.count); // 输出2 // 表示有两个元素。
// 快速创建一个NSArray对象
NSArray *array = @{@”jake”,@”tom”};
2、NSMutableAarray (NSArray的子类)
NSMutableAarray *array = [NSMutableAarray arraywithobjects:
@”rose”,@”name”,nil];
// 增加一个元素
[array addobject:[[Person alloc] init]];
[array addobject:@”jake”];
// 删除元素
[array removeallobjects];
// 删除指定对象
[ array removeobjectAtindex: 2]; // 干掉Person
注意:错误写法
1> [array addobject: nil]; // 不存在
2> NSMutableArray *array = @[@”jack”,@”jim”];
[array addobject:@”jake”]; // 上一句返回的是NSArray类型,为不可变集合。
3、NSSet
NSSet *s = [NSSet set];
NSSet *s1 = [ NSSet setwithobject:@”jake”,@”jake2”,@”jim”];
// 随机拿出
NSString *str = [s1 anyobject];
NSMutableSet (NSSet的子类)
NSMutableSet *s = [NSMutableSet set];
// 增加元素
[s addobject:@”123”];
// 删除元素
[s removeobject : (id) ];
4、集合遍历
1> c 语言遍历的方式。
2> 快速遍历
For (id obj in array)
{
NSLog (@”%@”,obj ) ;
Usinteger i = [array indexofobject:obj ];
Return 0;
}
3> block遍历
[array enumeerateobjectsusingBlock:
^(id obj, NSInteger idr, BOOL *stop ;)
{
NSLog(@”%ld - %@”, idx, obj);
}
// 每遍历一个元素,就调用一次block。
// 并且当前元素和索引位置当做参数传递给block;
5、NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放基本类型
* 本身不可变,都有一个可变的子类
2> 不同点
* NSSet存放内容无序,而NSArray是有序的。