黑马程序员——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
原创粉丝点击