黑马程序员-IOS学习笔记(十二)Foundation框架
2015-07-02 16:55
513 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------
1、foundation中常用的结构体。
* NSRange
* NSPoint \ CGpoint
* NSSize \ CGSize
* NSRect \ CGRect
2、Foundation中常用的类。
3、OC集合NSArray和NSSet的使用。
一、结构体的使用。
1、NSRange(求范围和长度的结构体)
例:
[objc] view plaincopyprint?
1. NSString *str = @” i love OC”;
2. NSRange range = [ str rangeofstring :@”ve o”];
3. NSLog(@”loc = %d,length = %d”,range.location,range.length);
注意:(查找ve o在str中的范围和长度,如果找不到,length = 0,location = NSnotfound 。)
2、NSPoint \ CGpoint(表示坐标的数组。)
例:
[objc] view plaincopyprint?
1. CGPoint p1 = NSMakePoint(10,10);
2. NSPoint p2 = CGPointMake(10,10); // 最常用的坐标表示法。
3、NSPoint \ CGpoint(表示UI元素的长与宽。)
例:
[objc] view plaincopyprint?
1. NSSize s1 = CGSizeMake(100,50); // 表示宽为50,高为100.
2. 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对象,不能存放其他类型)
[objc] view plaincopyprint?
1. // 创建一个NSArray对象,nil是数组结束的标志。
[objc] view plaincopyprint?
1. NSArray *array = [NSArry arraywithObject:@”rose”,@”jake”,nil];
2. NALog(@”%@”,array[1]); // 输出Jake
3. NALog(@”%d”,array.count); // 输出2 // 表示有两个元素。
[objc] view plaincopyprint?
1. // 快速创建一个NSArray对象
2. NSArray *array = @{@”jake”,@”tom”};
3. 2、NSMutableAarray (NSArray的子类)
4. NSMutableAarray *array = [NSMutableAarray arraywithobjects:
5. @”rose”,@”name”,nil];
[objc] view plaincopyprint?
1. // 增加一个元素
2. [array addobject:[[Person alloc] init]];
3. [array addobject:@”jake”];
4. // 删除元素
5. [array removeallobjects];
6. // 删除指定对象
7. [ 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> 快速遍历
[objc] view plaincopyprint?
1. For (id obj in array)
2. {
3. NSLog (@”%@”,obj ) ;
4. Usinteger i = [array indexofobject:obj ];
5. Return 0;
6. }
3> block遍历
[objc] view plaincopyprint?
1. [array enumeerateobjectsusingBlock:
2. ^(id obj, NSInteger idr, BOOLBOOL *stop ;)
3. {
4. NSLog(@”%ld - %@”, idx, obj);
5. }
// 每遍历一个元素,就调用一次block。
// 并且当前元素和索引位置当做参数传递给block;
5、NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放基本类型
* 本身不可变,都有一个可变的子类
2> 不同点
* NSSet存放内容无序,而NSArray是有序的。
1、foundation中常用的结构体。
* NSRange
* NSPoint \ CGpoint
* NSSize \ CGSize
* NSRect \ CGRect
2、Foundation中常用的类。
3、OC集合NSArray和NSSet的使用。
一、结构体的使用。
1、NSRange(求范围和长度的结构体)
例:
[objc] view plaincopyprint?
1. NSString *str = @” i love OC”;
2. NSRange range = [ str rangeofstring :@”ve o”];
3. NSLog(@”loc = %d,length = %d”,range.location,range.length);
注意:(查找ve o在str中的范围和长度,如果找不到,length = 0,location = NSnotfound 。)
2、NSPoint \ CGpoint(表示坐标的数组。)
例:
[objc] view plaincopyprint?
1. CGPoint p1 = NSMakePoint(10,10);
2. NSPoint p2 = CGPointMake(10,10); // 最常用的坐标表示法。
3、NSPoint \ CGpoint(表示UI元素的长与宽。)
例:
[objc] view plaincopyprint?
1. NSSize s1 = CGSizeMake(100,50); // 表示宽为50,高为100.
2. 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对象,不能存放其他类型)
[objc] view plaincopyprint?
1. // 创建一个NSArray对象,nil是数组结束的标志。
[objc] view plaincopyprint?
1. NSArray *array = [NSArry arraywithObject:@”rose”,@”jake”,nil];
2. NALog(@”%@”,array[1]); // 输出Jake
3. NALog(@”%d”,array.count); // 输出2 // 表示有两个元素。
[objc] view plaincopyprint?
1. // 快速创建一个NSArray对象
2. NSArray *array = @{@”jake”,@”tom”};
3. 2、NSMutableAarray (NSArray的子类)
4. NSMutableAarray *array = [NSMutableAarray arraywithobjects:
5. @”rose”,@”name”,nil];
[objc] view plaincopyprint?
1. // 增加一个元素
2. [array addobject:[[Person alloc] init]];
3. [array addobject:@”jake”];
4. // 删除元素
5. [array removeallobjects];
6. // 删除指定对象
7. [ 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> 快速遍历
[objc] view plaincopyprint?
1. For (id obj in array)
2. {
3. NSLog (@”%@”,obj ) ;
4. Usinteger i = [array indexofobject:obj ];
5. Return 0;
6. }
3> block遍历
[objc] view plaincopyprint?
1. [array enumeerateobjectsusingBlock:
2. ^(id obj, NSInteger idr, BOOLBOOL *stop ;)
3. {
4. NSLog(@”%ld - %@”, idx, obj);
5. }
// 每遍历一个元素,就调用一次block。
// 并且当前元素和索引位置当做参数传递给block;
5、NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放基本类型
* 本身不可变,都有一个可变的子类
2> 不同点
* NSSet存放内容无序,而NSArray是有序的。
相关文章推荐
- android面试题2
- iOS程序员必须知道的Android要点
- 黑马程序员---集合类
- 阿里巴巴常考面试题及汇总答案
- 互联网公司面试题总结1
- 黑马程序员--面向对象
- 拿到6个offer的面试经验-2015年硬件类笔面试经历之面试篇(转)
- 2014年硬件类笔面试经历(思科,百度,研究所,国家核电。。)笔试篇(转)
- 面试题18:树的子结构
- 黑马程序员——Java基础:枚举
- 面试题37:两个链表的第一个公共结点
- 面试题17:合并两个排序的链表
- 黑马程序员----OC学习笔记之属性学习
- 面试题16:反转链表
- 程序员编程艺术:第五章、寻找满足和为定值的两个或多个数
- 面试题15:链表中倒数第k个结点
- 完美世界实习面试总结
- 黑马程序员--OC学习笔记之代理模式的简单分析
- 程序员职业规划:让自己变得重要(转)
- 转载:一个平庸程序员的自白(豆瓣深度好文)