---------------------- <a href="http://www.itheima.com"target="blank">iOS开发</a>、<a href="http://www.itheima.com"target="blank">iOS培训</a>、期待与您交流! ----------------------
一、Foundation
Foundation框架是其他所有iOS框架的基础。其中包含了很多常用的数据类型:结构体、枚举、类。
二、Foundation中的结构体
1、NSRange:范围
typedef struct _NSRange {
NSUInteger location; // 位置
NSUInteger length; // 长度
} NSRange;
NSRange range1 = {2, 4};
NSRange range2 = {.location = 2, .length = 4};
NSRange range3 = NSMakeRange(2, 4);
2、NSPoint/CGPoint:点坐标
typedef struct _CGPoint {
CGFloat x; // x坐标
CGFloat y; // y坐标
} CGPoint;
CGPoint point = CGPointMake(3, 4);
3、NSSize/CGSize:尺寸
typedef struct _CGSize {
CGFloat width; // 宽
CGFloat height; // 高
} CGSize
CGSize size = CGSizeMake(100, 50);
4、NSRect\CGRect:点坐标及尺寸
typedef struct _CGRect {
CGPoint origin;
CGSize size;
} CGRect
CGRect rect = CGRectMake(3, 4, 100, 50);
5、CGPoint、CGSize、CGRect常用常量和方法(需要添加CoreGraphics框架)
CGPointZero -> {0, 0}
CGSizeZero -> {0,0}
NSString *str = NSStringFromPoint(point); // 转换成对应字符串
NSString *str = NSStringFromSize(size); // 转换成对应字符串
NSString *str = NSStringFromRect(rect); // 转换成对应字符串
BOOL isEqual = CGPointEqualToPoint(point1, point2); // 判断两个点是否相同
BOOL isEqual = CGSizeEqualToSize(size1, size2); // 判断两个尺寸是否相同
BOOL isContains = CGRectContainsPoint(rect, point); // 判断区域是否包含点
BOOL isContains = CGRectContainsRect(rect1, rect2); // 判断区域是否包含区域
三、Foundation中的方法
1、NSString、NSMutableString:字符串
// NSString
// 字符串的创建
NSString *str1 = @"WhyRanR";
NSString *str2 = [[NSString alloc] initWithFormat:@"Age is %d", 10]; // 格式化创建字符串
NSString *str3 =[[NSString alloc] initWithUTF8String:"itheima"]; // C字符串->OC字符串
const char *cStr = [str3 UTF8String]; // OC字符串 -> C字符串
// 比较字符串的值是否相同
BOOL isEqual = [str1 isEqualToString:str2]
// 字符串长度
NSUInteger length = str.length;
// 获得字符串某个位置的字符 索引从0开始
unichar c = [str characterAtIndex:1];
// 返回子字符串在对象字符串中的位置和长度 如果不匹配则返回 {NSNotFound, 0}
NSRange range = [@"Hello World!" rangeOfString:@"lo"]; // {3, 2}
// 截取字符串
NSString *subString = [str substringWithRange:NSMakeRange(2, 4)];
// 拼接字符串 返回值为新的字符串
NSString *newString = [str stringAppendingString:@" World"];
// NSMutableString
// 拼接字符串 返回值为void
[mStr appendString:@" World"];
// 删除某个范围内的字符
[mStr deleteCharactersInRange:NSMakeRange(2, 4)];
// NSArray
// 创建数组
NSArray *array = @[@"cxn", @"lmq"];
// 数组内对象数量
NSUInteger count = array.count;
// 获得数组元素
id str = array[0];
// 找到元素在数组中的位置
NSUInteger index = [array indexOfObject:@"cxn"];
// 遍历
for (int i = 0; i < array.count; i++) {
id obj = array[i];
NSLog(@"%d -- %@", i, obj);
}
for (id obj in array) {
NSLog(@"%@", obj);
}
[array enumerateObjectsUsingBlock:^(id obj, MSUInteger index, BOOL *stop){
NSLog(@"%d -- %@", index, obj);
}]
// NSMutableArray
// 创建数组 !不能使用@[]方式创建
NSMutableArray *array = [NSMutableArray array];
// 添加元素
[array addObject:@"yxy"]
// 删除元素
[array removeObjectAtIndex:0]
[array removeObject:@"yxy"]
[array removeAllObjects]
3、NSSet、NSMutableSet:集合(无序、元素不能重复)
// NSSet
// 创建集合
NSSet *set = [NSSet setWithObjects:@"cxn", @"lmq", nil];
// 随机访问集合元素
id obj = [set anyObject];
4、NSDictionary、NSMutableDictionary:字典(无序、键值对、键不能重复)
// NSDictionary
// 创建字典
NSDictionary *dict = @{@"gwf" : @"tj", @"gwf" : @"bj"};
// 获得键值对个数
NSUInteger count = dict.count;
// 获得元素
id obj = dict[@"gwf"];
// 遍历
NSArray *keys = [dict allKeys];
for(int i = 0; i < dict.count; i++)
{
id key = keys[i];
id obj = dict[key];
NSLog(@"%@ -- %@", key, obj);
}
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
NSLog(@"%@ -- %@", key, obj);
}]
// NSMutableDictionary
// 创建字典
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
// 设置值
[dict setObject:@"值" forKey:@"键"];
// 删除值
[dict removeObjectForKey:@"键"];
// int -> NSNumber
int n = 10;
NSNumber num = @(n);
// NSNumber -> int
int n = [num intValue];
// 结构体 -> NSValue
CGPoint p = CGPointMake(10, 10);
NSValue *value = [NSValue valueWithPoint:p];
// NSValue -> 结构体
CGPoint p = [value pointValue];
// 创建当前时间
NSDate *date = [NSDate date];
// 转化时间
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 定义格式
formatter.dateFormat = @"yyyy-MM-dd";
// 时间 -> 字符串
NSString *dateStr = [formatter stringFromDate:date];
// 字符串 -> 时间
NSDate date = [formatter dateFromString:dateStr];
---------------------- <a href="http://www.itheima.com"target="blank">iOS开发</a>、<a href="http://www.itheima.com"target="blank">iOS培训</a>、期待与您交流! ----------------------