黑马程序员-OC语言Foundation框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


结构体:

有如下结构体:
  NSRange,NSPoint/CGPoint,NSSize/CGSize,NSRect/CGRect
注意点:CG开头的结构体一般属于CoreGraphics框架

1.NSRange(表示范围)
   参数:location(位置),length(长度)

eg:

 NSRange r1 = {2,3} ; // 表示从2开始,3个长度  
 NSRange r2 = NSMakeRange(2,4); // 表示从2开始,4个长度 常用此方式  常用  
 NSRange r3 = {.location=2,length=4};

 
 

应用:查找某字符串在字符串str中的范围

eg:

 NSRange r3 = [str rangeOfString:@"love"]; // 查找字符串love在str中的范围。
 NSLog("location = %d,range =%d",r3.location,r3.range); // 打印出结果

 注:如果找不到,则length=0,location=NSNotFound。(NSNotFound是个枚举常量,等于-1)

2.NSPoint/CGPoint(表示点坐标)
  CGPoint跨平台。
  NSFloat = CGFloat = double
  参数:double类型的x和double类型的y
eg:
 NSPoint p = NSMakePoint(20,20); // 表示点的x和y坐标  
 NSPoint p2 = CGPointMake(20,20); 

CGPointZero表示原点,相当于CGPointMake(0,0)
CGPointEqualToPoint(CGPointMake(1,1),CGPointMake(2,2)); // 判断两个点是否相同,布尔型

3.NSSize/CGSize(表示UI的尺寸大小) 
  参数:长度x和宽度y

eg:

NSSize s1 = CGSizeMake(100,20); // 表示宽度是100,高度是20

4.NSRect/CGRect(表示UI的位置和尺寸)
    参数:CGPoint(位置),CGSize(尺寸)
eg:

CGRect r4 = CGRectMake(1,2,3,4); // 表示x坐标1,y坐标2,宽度3,高度4.

将结构体转化为字符串(将参数按照顺序打印出来)
 NSString *p = NSStringFromPoint(p1);

5.结构体和字符串相互转化

eg:

NSString *str = NSStringFromPoint(p1); // 将点坐标的结构体转化为字符串  
NSString *str = NSStringFromSize(s1); // 将UI尺寸大小的结构体转化为字符串 

 

常用类:
NSString/NSMutableString,NSSet/NSMutableSet,NSArray/NSMutableArray
NSString : 不可变字符串
NSMutableString(继承NSString):可变字符串(可调用添加方法,对字符串对象内容进行修改,例如字符串内的内容可以随意添加或删除)。
1.字符串创建的几种方法
  (1)NSString *s1 = @"jack";
  (2)NSString *s2 = [[NSString alloc] initWithFormat:@"age is %d",10];
  (3)NSString *s3 = [[NSString alloc] initWithString:@"jack"];
  (4)NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"]; // 将c语言字符串转化为OC字符串
           char *cs = [s4 UTF8String]; // 将oc字符串转化为C字符串

2.读取文件内容
eg:
  [NSString stringWithContentsOfFile:@"文件路径" encoding:NSUTF8StringEncoding  error:nil];  
  [NSURL URLwithString:@"文件路径"]; 

注:如果遇到中文,则使用NSUTF8StringEncoding进行编码

3.写入文件

eg:

[@"jack " writeToFile:@"/users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];  

4. NSMutableString
   作用:可以随意往字符串内部添加或删除内容。
   eg: 
[s1 appendString:@" 11 12"]; // 在字符串s1后添加11  12。且返回s1字符串  
[s1 deleteCharactersInRange:NSMakeRange(4,2)]; // 删除字符串s1的从4位开始往后2位的内容,且返回s1本身


5.求出字符串的第i位
   unichar i = [str characterAtIdex:i];

6.按照某字符串分割字符串,返回数组
     NSArray *array = [content componentsSeparatedByString:@"\n"];
   按照字符串\n将字符串content分割,并且分割后的内容以数组形式返回。
7.文件管理类NSFileManger 
  注意点:此类属于单列模式,此类永远只有一个对象
  常用具体有如下方法:
    
   创建文件管理对象 fm = [NSFileManager defaultManager  ];

数组(NSArray)
 OC数组只能存放OC对象,不能存放非OC对象类型(例如基本数据类型、结构体、枚举等)。
 NSArray:不可变数组
 NSMutableArray:可变数组
  
1.OC数组的创建
    NSArray *array1 = [NSArray arrayWithObject:@"jack",nil]; // 创建一个OC数组,数组中存放了jack对象。
   注:nil是数组元素的结束符号,不能存放nil。
 // 快速创建OC数组
NSArray *array2 = [@"jack",@"bill",nil]; 
2.获取OC数组中的某个元素
NSLog(@"%@",array1[0]);    
[array2 count]; // 求出字符串中的元素个数 array.count  
[array2 objectAtIndex:2]; // 求出字符串array2中第二个位置的元素

3.NSArry遍历
   方法一:
for (int i=0;i<array.count;i++)  
{  
     NSLog(@"%@",array[i]);  
}  

 方法二:
for ( id obj in array)  
{  
    [array indexOfObject:obj]; // 代表obj元素在数组array中的位置  
    NSLog(@"%@",obj);  
}  

 原理:1>每个字符串的对象是id类型。
             2>id obj代表着数组中的每一个元素。

方法三:
    // 每遍历一个元素,都会调用一次block,且会将当前元素和索引位置当作参数传给block
[array enumerateObjectsUsingBlock:  
       ^(id obj,NSUInteger idx, BOOLBOOL *stop)  
   {  
       NSLog(@"index = %d,元素 = %@",idx,obj);  
  
     if ( idx = 0)  
      {  
        *stop = YES;// 停止遍历  
       }  
   }   
    ];  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值