黑马程序员——foundation框架(二)

------- 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;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值