------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代表一个点,参数为其横纵坐标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);
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"]];