OC基础——Foundation框架之结构体和字符串



Foundation框架是其他所有ios框架的基础,Foundation框架中的数据类型:结构体、枚举、类。一般项目中需要包含Foundation框架:#import<Foundation/Foundation.h>。
常用的结构体
Foundation框架常用结构体NSRange\CGRange、NSPoint\CGPoint、NSSize\CGSize、NSRect\CGRect。
1、NSRange
1>作用:表示范围,可以计算字符串、数组的范围。
2>参数:location和length。
eg:
<span style="font-family:Microsoft YaHei;font-size:14px;">//NSRange的使用
NSRange r1 = NSMakeRange(2,4);//第一个参数为.location,第二个参数为.length,表示:从2开始,3个长度。
NSString *str = @"I love oc";
NSString range = [str rangeOfString:@"love"];//查找“love”这个字符串在str字符串的位置和长度。
NSLog(@"loc = %ld,len = %ld",range.location,range.length);
NSRange range1 = [str rangeOfString:@"找不到"];//其中rangeOfstring的作用是查找某个字符串的范围。
NSLog(@"loc = %d,len = @"%ld",range1.location,range1.length);/*如果找不到,则length=0,location=NSNotFound。(NSNotFound是个常量,等于-1),要用%d输出location的值才会有负号,默认的%ld是没有负号的。*/</span>
2、NSPoint/CGPoint
1>作用:表示点坐标。
2>参数:double  x和double  y。
eg:
<span style="font-family:Microsoft YaHei;font-size:14px;">//CGPoint的使用
CGPoint point1 = NSMakePoint(10,10);
NSPiont point2 = CGPointMake(10,10);//创建一个x=10,y=10这个点的坐标,平常经常使用这个方法创建一个CGPoint对象。

/*注意:
1> CGPointZero表示原点,相当于CGPointMake(0,0)
2> CGPointEqualToPoint(CGPointMake(1,1),CGPointMake(2,2)); // 判断两个点是否相同,布尔型
*/</span>
3、NSSize\CGSize
1> 作用:表示一个UI元素的尺寸。
2> 参数:长、宽
eg:
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">NSSize size1 = CGSizeMake(10,20);
CGSize size2 = NSSizeMake(10,20);// 表示宽度是10,高度是20,常用这个</span>
4、NSRect\CGRect
1> 表示图标的尺寸和位置
2> 参数:CGPoint(位置),CGSize(尺寸)
eg:
<span style="font-family:Microsoft YaHei;font-size:14px;">//CGRect的使用
CGRect rect1 = CGRectMake(10,10,10,20); // 表示x坐标0,y坐标0,宽度10,高度20。
CGRect rect2 = {(10,10),(10,20)}{point1,size1};</span>
5、打印结构体的方法
<span style="font-family:Microsoft YaHei;font-size:14px;">NSString *s = NSStringFromPoint(point1);// 将点坐标的结构体转化为字符串。
NSLog(@"%@",s);

NSString *s1 = NSStringFromPoint(rect1);//将图标的尺寸和位置转换成字符串
NSLog(@“%@”,s1);</span>
二、Faoundation 框架常用的类
Foundation框架常用的类有:NSString/NSMutableString,NSSet/NSMutableSet,NSArray/NSMutableArray,Dictionary/NSDictionary。
其中:NSString/NSMutableString为字符串型,NSSet/NSMutableSet,NSArray/NSMutableArray,Dictionary/NSDictionary为集合型。
NSString:不可变字符串
1>创建字符串的几种方式:
<span style="font-family:Microsoft YaHei;font-size:14px;">NSString *s1 = @"whbsspu";

NNString *s2 = [[NSString alloc]initWithFormat:@"my age is %d",21];

NNString *s3 = [[NSString alloc]initWithString:@"whbsspu"];

NSString *s4 = [[NSString alloc]initWithUTF8String:"name"];//此方法是将c语言字符串转化为OC字符串。

char *c = [s4 UTF8String];//将OC字符串转换为C语言字符串。</span>
2> 读取文件内容
<span style="font-family:Microsoft YaHei;font-size:14px;">[NSString stringWithContentsOfFile:@"文件路径" encoding:NSUTF8StringEncoding  error:nil];
//类方法
 [NSURL URLWithString:@"文件路径"];</span>
3> 写入文件
<span style="font-family:Microsoft YaHei;font-size:14px;">[@"whbsspu" writeToFile:@"/users/apple/Desktop/abc.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];</span></span>
会自动将whbsspu写入到abc.txt,如果没有abc.txt会自动创建。
NSMutableString
1> NSMutableString继承NSString 。
2> 可变字符串意味着字符串里面的内容可以随便添加/删除。
3> 添加内容:appendString:拼接字符串  //拼接内容到原来字符串后面,并且返回对象本身。
eg:
<span style="font-family:Microsoft YaHei;font-size:14px;">NSMultableString *m1 = [NSMultableString stringWithFormat:@"whbsspu"];
// 拼接字符串
[m1 appendString:@"love oc"];//在whbsspu后面添加love oc,并返回m1本身。
</span>
注意:不可变字符串NSString也有一个拼接的方法,stringByAppendingString,只不过这种方法是在原有的字符串后面拼接新的内容产生另外一个字符串,原来的字符串并未改变。
eg:
<span style="font-family:Microsoft YaHei;font-size:14px;">NSString *m2 = [m1 stringByAppendString:@"11 12"];//此时的m1仍为whbsspu,会产生一个新的字符串m2:whbsspu11 12</span>
4> 删除字符串里的内容:
<span style="font-family:Microsoft YaHei;font-size:14px;">//删除字符串
//方法1
NSRange range = [m1 rangeOfString:@"love oc"];
[m1 deleteCharactersInRange:range];//删除制定字符串,并返回m1本身。
// 方法2
[m1 deleteCharactersInRange:NSMakeRange(4,2)]; // 删除字符串s1的从4位开始往后2位的内容,返回m1本身。</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值