———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
1.Foundation框架
要想使用Foundation中的数据类型,,包含他的主头文件即可即:
#import
2.结构体NSRange
NSRange range = NSMakeRange(location,length); // location是位置,length是长度
NSString *str = @”abcdefghijk”;
NSRange range = [str rangeOfString:@”bcd”]; // 获取字符串的范围
NSRange range = [str rangeOfString:@”xyz”]; // 如果字符串不存在,则length = =0,location == NSNotFound
// NSNotFound 就是-1;
3.结构体point、size、rect
1>说明:
NSPoint == CGPoint; // 表示一个点
NSSize == CGSize;// 表示宽度和高度
NSRect == CGRect; // 表示一个区域
// 开发中一般都用CG
2>创建
CGPoint p = CGPointMake(0,0);
CGSize s = CGSizeMake(100,50);
CGRect r1 = CGRectMake(0,0,100,50); // 是点和一块范围的组合
CGRect r2 = {{0,0},{100,50}};
CGRect r3 = {p,s};
CGRect r4 = {CGPointZero,CGSizeMake(100,50)}; // CGPointZero是(0,0)
3>其他用法
// 比较两个点是不是同一个点
CGPointEqualToPoint(CGPointMake(0,0),CGPointMake(0,2));
// 比较两个size
CGSizeEqualToSize(s1,s2);
// 比较两个rect
CGRectEqualToRect(r1,r2);
// 判断一个点是否在一个区域
CGRectContainsPoint(r,p);
// 上面四种比较均返回BOOL类型
注意:这些函数需要添加CoreGraphics框架,Foundation中只有声明
4.NSString和NSMutableString
NSString:不可变的
NSMutableString:可变的
1>NSString (类方法,对象方法相似)
NSString *str1 = [NSString stringWithFormat:@””];
// C字符串变为OC字符串
NSString *str2 = [NSString stringWithUTF8String:(const char *)];
// OC字符串变为C字符串
[str2 UTF8String];
// 读取文件
NSString *str3 = [NSString stringWithContentsOfFile:@”路径” encoding:NSUTF8StringEncoding error:nil];
// URL路径
NSString *str4 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error :nil];
//URL路径格式:协议头:// 路径
NSURL *url = [NSURL URLWithString:@”http://www.baidu.com”];
2>NSMutableString
// 包含NSString的创建方法,因为是子类
// 创建
NSMutableString *str = [NSMutableString stringWithFormat:@”abc”];
// 拼接
[str appendString:@”def”];
// 删除
[str deleteCharactersInRange:[str rangeOfString:@”bc”]];
// 注意下面代码(str是NSString类型)
NSString *str2 = [str stringByAppendingString:@”gh”];
// 说明:虽然写法相似但是str是不变的,而是生成新字符串
5.NSArray和NSMutableArray
1>说明
a. 只能存放OC对象,不能存放非OC类型
b. 不能存放nil值
2> NSArray
NSArray *arr = [NSArray array]; // 该数组永远是空数组
// 创建单个元素的数组
NSArray *arr1 = [NSArray arrayWithObject:@”danDan”];
// 创建多个元素的数组
NSArray *arr2 = [NSArray arrayWithObjects:@”gouDan”,@”lvDan”,@”danDan”,nil]; // 注意以nil结尾
// 快速创建
NSArray *arr3 = @[@” gouDan”,@”lvDan”,@”danDan”]; // 这个不需要nil结尾
// 获得数组元素个数
array.count; // 或者 [array count];
// 获取某个位置的元素
[array3 objectAtIndex:0]; // 或者array3[0];
3>NUMutableArray
// 包含NSArray创建方法(不包括快速创建)
// NSMutableArray *arr = [NSMutableArray arrayWithObjects:@ gouDan”,@”lvDan”,@”danDan”,nil];
// 添加元素
[arr addObject:@”jim”]; // 不可以添加nil
// 删除元素
[arr removeObjectAtIndex:1];
[arr removeObject:@”jim”];
6.NSSet和NSMutableSet
// 和NSArray的区别是没有顺序
// 创建方法相似:Array变为Set
// 随机取出元素
[s anyObject];
// 注意不能使用Index操作,因为是无序的
7.NSDictionary和NSMutableDictionary
1>说明
a. 存储的是键值对
b. 字典也是无序的
c. 如果添加的元素Key跟原字典冲突,会覆盖之前的值
2>NSDictionary
NSDictionary *d 1= [NSDictionary dictionaryWithObjectsAndKeys:
@”gouDan”,@”name”,
@”beijing”,@”address”,nil]; //同样以nil结尾
// 快速创建不用nil结尾
NSDictionary *d2 = @{@”name”:@”gouDan”,@”address”:@”beijing”};
// 取出key对应的元素
id obj = [d2 objectForKey:@”name”];
id obj = @[@”name”];
// 取出键值对个数
d.count;
3>NSMutableDictionary
NSMutableDictionary *d = [NSMutableDictionary dictionary];
// 添加
[d setObject:@”gouDan” forKey:@”name”];
// 删除
[d removeObjetForKey:@”name”];
// 拿出所有key
[d allKeys];
// 使用block遍历
[d enumrateKeysAndObjectsUsingBlock:
^(id key,id obj,BOOL *stop){
NSLog(@”%@-%@”,key,obj);
}];
8.NSNumber和NSValue
1>NSNumber
// 整型转换为NSNumber对象
NSNumber *n1 = [NSNumber numberWithInt:3];
NSNumber *n2 = @12.3; // @’A’ @YES
// NSNumber转换成int
[n1 intValue];
2>NSValue(NSNumber的父类)
// 包装结构体.其他结构体类似
CGPoint p = CGPointMake(0,0);
NSValue *value = [NSValue valueWithPoint:p];
// 转会结构体
[value pointValue];
9. NSDate
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 没有类方法
formatter.dateFormat = @”yyyy-MM-dd HH:mm:ss”; // 设置格式
NSString *str = [formatter stringFromDate:date];