黑马程序员——foundation框架(二)
来源:互联网 发布:中学生学什么编程语言 编辑:程序博客网 时间:2024/05/29 19:57
------- android培训、java培训、期待与您交流! ----------
NSFileManager的使用
//NSFileManager是用来管理文件系统的 //NSFileManager用于判断 NSString *filePath = @"/Users/zhangwei/Desktop/arr.plist"; //1.判断文件是否存在 //创建文件管理单例对象 //调用defaultManager,创建一个文件管理的单例对象 //单例对象:在 程序运行期间,只有一个对象存在 NSFileManager *fm = [NSFileManager defaultManager]; BOOL isYES = [fm fileExistsAtPath:filePath ]; NSLog(@"%d",isYES); //判断是否是一个目录 if (isYES) { BOOL isDir; [fm fileExistsAtPath:filePath isDirectory:&isDir]; if (isDir) { NSLog(@"这是一个目录"); }else{ NSLog(@"这不是一个目录"); } } //判断文件是否可读 isYES = [fm isReadableFileAtPath:filePath]; NSLog(@"%d",isYES); //是否可写 isYES = [fm isWritableFileAtPath:filePath]; NSLog(@"%d",isYES); //是否可删除 isYES = [fm isDeletableFileAtPath:filePath]; NSLog(@"%d",isYES);
结构体的使用
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //CGPoint/NSPoint是CGPoint的一个别名 //用来表示二维平面的一个点 //包含两个成员 x(点的x方向)y(y方法) CGPoint c1; c1.x = 20; c1.y = 30; CGPoint c2 = {10,10}; CGPoint c3 = {.x = 10}; NSPoint np1; np1.x = 10; np1.y = 100; //oc中特有的赋值方式 CGPoint c4 =CGPointMake(10, 10); NSPoint np2 = NSMakePoint(5, 10); //CGSize和NSSize //用来表示平面的面积(大小) //width(宽) height(高) CGSize s1 ; s1.width = 200; s1.height = 200; //oc中特有的方式 CGSize s2 = CGSizeMake(100, 100); NSSize ns2 = NSMakeSize(100, 50); //CGRect和NSRect //表示在平面上左上角某个点的矩形区域 //origin表示矩形的左上角的点 //size 表示矩形的大小 CGRect r1; r1.origin.x = 0; r1.origin.y = 2; r1.size.height = 200; r1.size.width = 100; CGRect r2 = {{0,2},{200,100}}; //oc特有 CGRect r3 = CGRectMake(1, 1, 1, 1); NSRect ns3 = NSMakeRect(1, 1, 1, 1); NSLog(@"%@",NSStringFromRect(ns3)); } return 0;}NSNumber的使用
NSArry中只能存放OC对象,不能存放int/float/double等基本数据类,如果真想把基本数据放进数组或字典中,需要先将基本数据类型包装成OC对象
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { int a = 10; float f1 = 3.24f; double d1 = 2.34; //numberWithInt 把int 转换为NSNumber NSNumber *intobj = [NSNumber numberWithInt:a]; NSMutableArray *arr = [NSMutableArray arrayWithObjects:intobj, nil]; //float --->NSNumber NSNumber *floatobj = [NSNumber numberWithFloat:f1]; [arr addObject:floatobj]; NSNumber *d1obj = [NSNumber numberWithDouble:d1]; [arr addObject:d1obj]; NSLog(@"%@",arr); //数组的元素相加 //取出数组的元素 //把数组元素转换为基本数据类型的数据 NSNumber *n1 = arr[0]; a =[n1 intValue]; NSNumber *n2 = arr[1]; float f2 = [n2 floatValue]; NSLog(@"%.2f",a + f2); } return 0;}
NSValue的使用
NSNumber是NSValue的子类,NSValue主要用来把指针,CGRect结构体等包装成OC对象,以便存储。
typedef struct{ int year; int month; int day;} MyDate;int main(int argc, const char * argv[]) { @autoreleasepool { //保存年月日 MyDate md = {2015,5,7}; //@encode(MyDate)作用,把MyDate类型生成一个常量字符串描述 NSValue *val = [NSValue valueWithBytes:&md objCType:@encode(MyDate)]; //定义一个数组,把val存到数组中 NSMutableArray *arr = [NSMutableArray arrayWithObject:val]; NSLog(@"%@",arr); //从数组中取出来NSValue对象 //从对象 中,取出结构体变量的值 MyDate tmd; //获取结构体,,保存到结构体变量tmd [val getValue:&tmd]; NSLog(@"%d,%d,%d",tmd.year,tmd.month,tmd.day); } return 0;}
NSDate 的使用
NSDate是oc中提供日期时间处理的一个类
1)获取当前的时间
NSDate *d1 = [NSDate date];//创建一个时期时间对象
2)格式化显示时间
3)计算时间
4)日期时间对象的使用
#import <Foundation/Foundation.h>void test (){ NSDate *d1 = [NSDate date]; //0时区时间,北京 东8区 //当前时间+8小时,得到的 NSLog(@"%@",d1); //格式化日期 NSDateFormatter *formatter = [NSDateFormatter new]; //设置日期的显示格式 //yyyy表示四位的年份 //MM 表示2位的月份 //dd 表示2位的天数 //HH 表示24小时制 hh 12小时制 //mm 表示2位的分钟数 //ss 表示2位的秒数 formatter.dateFormat = @"yyyy年MM月dd日 hh:mm:ss"; //格式化日期 NSString *str = [formatter stringFromDate:d1]; NSLog(@"%@",str); }void test2 (){ NSDateFormatter *formatter = [NSDateFormatter new]; //设置日期的显示格式 //yyyy表示四位的年份 //MM 表示2位的月份 //dd 表示2位的天数 //HH 表示24小时制 hh 12小时制 //mm 表示2位的分钟数 //ss 表示2位的秒数 formatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss"; //计算明天的此刻 //距现在24小时以后 NSTimeInterval t = 60*60*24; NSDate *tom = [NSDate dateWithTimeIntervalSinceNow:t]; //格式化显示时间 NSString *timeStr = [formatter stringFromDate:tom]; NSLog(@"%@",timeStr); //计算昨天的时间 -t NSDate *now = [NSDate date]; NSDate *zt = [now addTimeInterval:-t]; timeStr = [formatter stringFromDate:zt]; NSLog(@"%@",zt);}int main(int argc, const char * argv[]) { @autoreleasepool { //日期对象 // NSCalendar 日期类,可以帮我们快速的获取年月日,时分秒 NSData *d = [NSDate date]; //创建日期的对象 NSCalendar *cal = [NSCalendar currentCalendar]; NSDateComponents *coms = [cal components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:d]; NSLog(@"year:%ld,month:%ld,day:%ld,",coms.year,coms.month,coms.day); } return 0;}
0 0
- 黑马程序员——IOS基础(Foundation框架二)
- 黑马程序员——foundation框架(二)
- 黑马程序员-----Foundation框架续(二)
- 【黑马程序员】Foundation框架(二)
- 黑马程序员——10-Foundation框架之二
- 黑马程序员--Objective-C——Foundation框架二
- 黑马程序员——IOS学习笔记(Foundation框架(二))
- 黑马程序员——Foundation框架——集合类(NSSet、NSArray等)(二)
- 黑马程序员——ios知识整理——Foundation框架(二)
- 黑马程序员——Foundation框架
- 黑马程序员——Foundation框架
- 黑马程序员—foundation框架总结
- 黑马程序员—Foundation框架之NSString
- 【黑马程序员】OC-Foundation框架—NSMutableString
- 黑马程序员——[Foundation]Foundation框架01
- 黑马程序员——Foundation(二)
- 黑马程序员——Foundation框架(一)
- 黑马程序员——IOS基础(Foundation框架一)
- Codeforces Round #321 (Div. 2) D. Kefa and Dishes 位 状态压缩 dp
- C++学习书籍
- ContactsContract中Contacts,RawContacts和Data关系图解及其实例代码
- 机器学习(九)—FP-growth算法
- JavaAPI_3
- 黑马程序员——foundation框架(二)
- 第一层第三题:黑色星期五
- hdu 5491 The Next(位运算+贪心)
- android studio在模拟器上的中文乱码问题解决方法
- 我们为什么选择acm(个人观点)
- #LeetCode# #C++# Binary Tree Preorder Traversal
- poj3167
- 如何将servlet中读取的数据转化为JSON
- 逻辑值分类True False