黑马程序员---OC基础---Foundation(下)

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

一、Foundation中的类

3.1NSDictionary

英文翻译过来是字典的意思,它的作用是通过一个key键,就能找到对应的value值
1.NSDictionary的创建
1)创建空NSDictionary
NSDictionary *dict = [NSDictionary dictionary];
2)创建只有一个键值对的 NSDictionary
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"hello" forKey:@"key1"];        
3)创建有多个键值对的 NSDictionary
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"hello",@"key1",@"bye",@"key2"];
4)快速创建
NSDictionary *dict = @{@"key1":@"hello",@"key2":@"bye"};
2. NSDictionary特点
1)字典储存的时候,必须是以“键值对”来储存,并且键不能重复
2)“键值对”是无序的
3)NSDictionary可以根据键,快速获取数据
3.常见用法
1)获取键值对数目
NSUIteger num = [dict count];
2)根据key键取出value
NSString *str = [dict objectForKey:@"key1"];        //以前的方法
NSString *str = dict[@"key1"];        //现在的简便方法
4. NSDictionary的遍历
1)快速遍历
for (NSString *key in dict){
    NSLog(@"%@",[dict objectForKey:key]);        //遍历打印该字典的所有value值
}
2)Block遍历
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            NSLog(@"%@,%@",key,[dict objectForKey:key]);
        }];

5.NSArray和NSDictionary的区别

1)NSArray是有序的,NSDictionary时无序的

2)NSArray是通过下标访问,NSDictionary是通过key键访问的

3.2NSMutableDictionary

NSMutableDictionary是NSDictionary的子类。前者是可变的,可添加、修改、删除键值对;后者是不可变的,一旦初始化完毕,里面的内容就固定不变
1. NSMutableDictionary的创建
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
2.常用操作
1)添加一个键值对
[dict setObject:@"你好" forKey:@"key3"];        //添加了一个键为“key3”值为“你好”的键值对
2)删除一个键值对
[dict removeObjectForKey:@"key3"];        //删除了键为“key3”的键值对
3)删除所有键值对
[dict removeAllObjects];
4)设置键值对
[dict setObject:@"hello" forKey:@"key2”];        //以前的方法,繁琐
dict[@"key2"] = @"hello";        //现在的方法,简便

4NSFileManager

顾名思义,NSFileManager是用来管理文件系统的,它可以进行常见的文件、文件夹操作,比如拷贝、剪切、创建等。NSFileManager使用了单例模式singleton
1.NSFileManager的常见判断
1)判断文件是否存在
NSFileManager *fm = [NSFileManager defaultManager];
BOOL isYES = [fm fileExistsAtPath:@"filePath"];        //判断在路径“filePath”下文件fm是否存在
2)判断是否为一个目录
BOOL isYES = [fm fileExistsAtPath:@"目录路径" isDirectory:&isDir];
3)判断文件是否可读
BOOL isYES = [fm isReadableFileAtPath:@"filePath"];
4)判断文件是否可写
BOOL isYES = [fm isWritableFileAtPath:@"filePath"];
5)判断文件是否可以删除
BOOL isYES = [fm isDeletableFileAtPath:@"filePath"];
2.用法深入, NSFileManager的文件访问
1)获取文件属性信息
NSDictionary *dict = [fm attributesOfItemAtPath:@"filePath" error:nil];
2)获取指定目录下文件及子目录
NSArray *arr = [fm subpathsAtPath:@"filePath"];        //递归方式获取
NSArray *arr = [fm subpathsOfDirectoryAtPath:@"filePath" error:nil];        //非递归方式
3)获取指定目录下所有子目录
NSArray *arr = [fm contentsOfDirectoryAtPath:@"filePath" error:nil];
3.用法深入二,文件拷贝、剪切和删除
1)拷贝
[fm copyItemAtPath:@"filePath1" toPath:@"filePath2" error:nil];        //将路径"filePath1" 的文件拷贝到路径"filePath2" 下
2)剪切(移动)
[fm moveItemAtPath:@"filePath1" toPath:@"filePath2" error:nil];        //将路径"filePath1" 的文件移动到路径"filePath2" 下
3)删除
[fm removeItemAtPath:@"filePat" error:nil];        //将路径"filePath" 的文件删除
4.文件下载的简单思路
1)发送请求给服务器,要求下载文件
2)服务器响应,返回文件路径
3)客户端利用NSData来存放数据
4)利用NSFileManager将NSData中的文件数据写入到新文件中

5常见结构体

1.CGPoint和NSPoint
两者同义,指的是二维平面中的一个点
创建及赋值:
NSPoint np = NSMakePoint(5,5);
CGPoint np = CGPointMake(5,5);
2. CGSize和NSSize
表示一个矩形块区域
创建及赋值:
NSSize np = NSMakeSize(5,5);
CGSize np = CGSizeMake(5,5);
3. CGRect和NS Rect
表示平面上的一个矩形区域
创建及赋值:
NSRect np = NSMakeRect(5,6,7,5);
CGRect np = CGRectMake(5,6,7,5);
官方推荐用CG开头的结构体

6NSNumber

NSNumber的作用是将基本数据类型(int、float、char等)包装成OC对象
1.NSNumber的创建
NSNumber *obj = [NSNumber numberWithInt:25];        //以前的方法,繁琐
NSNumber *obj = @25;        //现在的方法,简便
2.取出NSNumber对象的基本数据
charValue,intValue,longValue,doubleValue,boolValue,stringValue
int a = [obj intValue];

7NSValue

NSNumber是NSValue的子类,只能包装数字类型。NSValue可以包装任意类型,因此可以用NSValue将结构体包装后,加入NSArray或NSDictionary中
1.将结构体包装成NSValue对象
方法有valueWithPoint,valueWithSize,valueWithRect
NSSize np = NSMakeSize(5,5);
NSValue *val = [NSValue valueWithSize:np];
2.取出之前包装的结构体
方法有pointValue,sizeValue,rectValue
NSSize np = [val sizeValue];
3.任意数据的包装
NSValue *val = [NSValue valueWithBytes:&np objCType:@encode(NSSize)];

8NSDate

NSDate可以用来表示时间,进行一些常见的日期时间处理,一个NSDate对象就代表一个时间
1.获取当前时间
NSDate *d = [NSDate date];
2.日期格式化
第一步:设置日期显示格式
第二步:将NSDate对象格式化
NSDate *d = [NSDate date];                           //创建一个当前时间对象
NSDateFormatter *formatter = [NSDateFormatter new];  //创建一个时间格式对象
formatter.dateFormat = @"HH:mm:ss yyyy年MM月dd日";    //设置时间格式
d = [formatter stringFromDate:d];                    //格式化时间对象
3.计算日期
计算n秒后的日期时间
d = [NSDate dateWithTimeIntervalSinceNow:3600];        //计算一个小时后的日期时间




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值