黑马程序员08--Foundation--01--NSString、NSRange、NSPoint、NSSize、NSRect

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

一、Foundation框架

通常我们会将他们分为几类:
1、值对象
2、集合
3、操作系统服务:文件系统、URL、进程通讯
4、通知
5、归档和序列化
6、表达式和条件判断
7、Objective-C语言服务

二、常用结构体NSRange

NSRange表示一个范围,其内包含两个参数,第一参数是起始位置(location),第二个参数是长度(length)。

具体用法:

NSRange range = {.location = 3, .length = 5};
    
    // 常用下面的方式定义: 
    NSRange range2 = NSMakeRange(3,5);//使用NSMakeRange定义一个NSRange 
    
    // 查找某字符串在str中的范围,str为已定义的字符串。
    [str rangeOfString:@"java"];
    // 如果找不到字符串location = NSNotFound = -1  length = 0;
    
    // 打印NSRange可以使用Foundation中方法 
    NSLog(@"range2 is %@", NSStringFromRange(range2));
    // 注意不能直接NSLog(@"range2 is %@", range2),因为range2不是对象(准确的说%@是指针)而是结构体。
三、常用结构体NSPoint/CGPoint、NSSize/CGSize、NSRect/CGRect

NSPoint/CGPoint代表一个点,参数为其横纵坐标x、y,苹果官方默认的屏幕左上角为坐标原点。

NSSize/CGSize代表一个大小。

NSRect/CGRect表示一个矩形,其参数为两个结构体,第一个为NSPoint/CGPoint,第二个为NSSize/CGSize。

具体用法:

    NSPoint p=NSMakePoint(10, 15);       // NSPoint就是CGPoint
    NSSize s=NSMakeSize(10, 15);         // NSSize就是CGSize
    NSRect r=NSMakeRect(10, 5, 100, 200);// NSRect就是CGRect
    
    // 最常用的是以下方式 
    NSPoint p2=CGPointMake(10, 15);
    CGSize s2=CGSizeMake(10, 15);
    NSRect r2=CGRectMake(10, 5, 100, 200);
    
    NSLog(NSStringFromPoint(p2));
    NSLog(NSStringFromSize(s2));
    NSLog(NSStringFromRect(r2));
    
    // 比较两个点是否相同,x、y是否一样。返回值为bool类型。
	CGPointEqualToPoint(CGPointMake(10, 10),CGPointMake(10, 10));
    // 同理Rect、Size也有相应的比较函数。
    CGSizeEqualToSize(CGSizeMake(100, 10),CGSizeMake(10, 10));
    CGRectEqualToRect(CGRecttMake(0, 0, 100, 50),CGRectMake(0, 0, 100, 40));

    // 判断矩形是否包含一个点:返回值bool
    CGRectContainsPoint(CGRectMake(0, 0, 100, 50),CGPointMake(50, 50));
一些常量:
CGPointZero == CGPointMake(0, 0);
CGSizeZero == CGSizeMake(0, 0);
CGRectZero == CGRectMake(CGPointZero, CGSizeZero);
四、NSString与子类NSMutableString
// NSString
    // 1、 有格式符的初始化            
           NSString *str1 = [[NSString alloc] initWithFormat:@"age is %i,name is %.2f",19,1.72f];  
    // 2、C语言字符串转换OC字符串  
            NSString *str2 = [[NSString alloc] initWithUTF8String: (const char *)];
    	// OC字符串转换C语言字符串  
        	const *cs = [str UTF8String];
    // 3、读取文件内容
    	//NSUTF8StringEncoding 用到中文就用这种编码
        	NSString *str3 = [[NSString alloc] initWithContentsOfFile:@"文件的绝对路径" encoding:NSUTF8StringEncoding error:nil];
    // 4、读取文件内容
    	//	URL:资源路径
    	//	协议头://路径  如:file://  ,ftp://   ,   http://
        	NSURL *url = [[NSURL alloc] initWithString:@"file//路径"];
        	NSString *str4 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    // 5、类方法,相比对象方法更好用。
    	// stringWithFormat  stringWithContentsOfFile stringWithContentsOfURL
    // 6、字符串分割
            NSLog(@"%@",[@"abcdef" substringFromIndex:3]);  // 从第三个索引开始(包括第三个索引),直到最后一位。结果:def
            NSLog(@"%@",[@"abcdef" substringToIndex:3]);    // 从0开始截取到第三个索引(不包括第三个)。结果:abc
            NSLog(@"%@",[@"abcdef" substringWithRange:NSMakeRange(2, 3)]);  // 截取范围。结果:cde
    // 7、取出指定位置字符
            NSLog(@"%c",[@"abc" characterAtIndex:0]);
// NSMutableString
    // 1、初始化initWithFormat、initWithString等等。
            NSMutableString *str1= [[NSMutableString alloc] init];
            // 调用相应类方法
            NSMutableString *str2 = [NSMutableString stringWithFormat:@"12345"]; 
    // 2、设置字符串
            [str1 setString:@"hello"];
    // 3、追加字符串
            [str1 appendString:@",world!"];
    // 4、追加字符串
            [str1 appendFormat:@"我的年龄是%i。Hello.",18];
    // 5、替换字符串
            NSRange range=[str1 rangeOfString:@"Hello"];
            [str1 replaceCharactersInRange:range withString:@"Hi"];
            NSLog(@"%@",str1);
            //结果:我的年龄是18。Hi.
    // 6、删除指定字符串
            [str1 deleteCharactersInRange:[str1 rangeOfString:@"name"]];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值