您的位置:首页 > 职场人生

黑马程序员-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是有序的。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: