NSData/NSMutablaDate
1.计算机中文件分为几种?
文本文件和二进制文件,其中我们图片、歌曲、电影、就是二进制文件,像`.txt`的文件就是文本文件。
2.客户端与服务器端,或者客户端与客户端交流的格式为二进制,我们在传输给客户端数据,OC中用NSData类来存储,由实例化的对象,此对象中包含大量的字节,这些字节就是我们客户端想要的信息。
NSData
NSData创建
NSString *string = @"你好吗?";
//将字符串转换成NSData
//将字符串转换成C语言的字符串
const char *str = [string UTF8String];
//将C语言的字符串转换成data
NSData *data1 = [NSData dataWithBytes:str length:strlen(str)];
NSLog(@"data1 = %@",data1);
//直接将OC中字符串转换成data
NSData *data2 = [string dataUsingEncoding:4];
NSLog(@"@data2 = %@",data2);
//将本地文件中的数据转换成data
NSData *data3 = [NSData dataWithContentsOfFile:@"/Users/ibokan2/Desktop/1.jpg"];
NSLog(@"data3 = %@",data3);
//将网络文件转换转换为data
NSData *data4 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@""]];
BOOL flag = [data3 writeToFile:@"/Users/ibokan2/Desktop/2.png" atomically:YES] ;
if (flag) {
NSLog(@"下载成功");
}
NSUInteger length = data3.length;
NSLog(@"%lu",(unsigned long)length);
NSMutableData
//NSMutableData
//创建一个空的可变data
NSMutableData *mdata = [NSMutableData data];
//增加
[mdata appendData:data1];
NSDate
在OC中,Foundation框架为我们提供了强大的时间操作类NSDate
,该类封装了各种时间和日期的API
1.构造一个时间类
//获取系统当前时间
NSDate *date1 = [NSDate date];
NSLog(@"date = %@",date1);
//当前系统时间+100s;
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:100];
NSLog(@"date2 = %@",date2);
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:100];
NSLog(@"date3 = %@",date3);
//
NSDate *date4 = [NSDate dateWithTimeInterval:100 sinceDate:date1];
NSLog(@"date4 = %@",date4);
2.关于时间戳
//将一个时间转换成时间戳
NSTimeInterval timeInterval = [[NSDate date]timeIntervalSince1970];
NSLog(@"timeInterval = %f",timeInterval);
NSTimeInterval timeIntervalNow = [[NSDate date]timeIntervalSinceNow];
NSLog(@"timeInterval = %f",timeIntervalNow);
3.将NSDate
转换为NSString
NSDateFormatter *dateFormatter = [NSDateFormatter new];
//设置时区(默认时区)
dateFormatter.timeZone = [NSTimeZone defaultTimeZone];
//设置时间输出格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss ms"];
NSString *string1 = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"string1 = %@",string1);
4.NSString
转换为NSDate
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2015-07-31 15:41:42"];
NSLog(@"date = %@",date);
NSTimeInterval timeInterval1 = date.timeIntervalSinceNow;
NSLog(@"距今已经%f",timeInterval1);