Foundation 框架知识点

框架的定义:

由一堆类,方法,函数,文档等有序的结合在一起

NSString介绍及基本使用:

一般成NSString为字符串的类.

//writeTofile 的方法

  •     //      str writeToFile:@"文件的路径" atomically:原子性(YES/NO) encoding:NSUTF8StringEncoding error:nil

//把NSString 字符串保存到文件中

    NSString *str = @"zhangsanfeng";

    //文本编码:

    //   中文:  GBK  GB2312

    //         2      2

    //   UTF-8 :国际通用编码

    //         3

    

    //writeTofile 的方法

    //       str writeToFile:@"文件的路径" atomically:原子性(YES/NO)encoding:NSUTF8StringEncoding error:nil

   

    //错误对象

    NSError *err;

    

    [str writeToFile:@"/Users/zhaoxiaohu/Desktop/" atomically:YES encoding:NSUTF8StringEncoding error:&err];

    

    //writeToFile 方法,如果写入文件成功,err == nil

    //err != nil

    if (err != nil) {

       NSLog(@"写入失败!,%@",err);

    }else{

       

        NSLog(@"写入成功");

    }

    

}


       

       NSError *err;

       //      NSString *str =[NSString stringWithContentsOfFile:@"待读取的文件的路径"encoding:NSUTF8StringEncoding(编码)error:&err(有没有错误)]


       

       if (err != nil) {

           NSLog(@"读取失败!,%@",err);

       }else{

           

           NSLog(@"读取成功");

           NSLog(@"%@",str);

       }     

       

    }

    return 0;

}

NSString字符串比较

字符串比较函数

#import <Foundation/Foundation.h>

void test(){

    

    NSString *str1 = @"abc";   // a 97

    NSString *str2 = @"abc";   // A 65

    

    //取出每个字符的ASCII码值 ,比较ASCII码值大小

    //compare方法比较大小

    //compare 默认的区分大小写的

    //compare 这个函数,不能增加条件

    //       NSComparisonResult result = [str1 compare:str2];

    

    //比较的时候,不区分大小写,参考字符的个数

    NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];

    //

    switch (result) {

       case NSOrderedAscending:

           NSLog(@"str1 < str2 升序");

           break;

           

       case NSOrderedDescending:

           NSLog(@"str1 > str2 降序");

           break;

           

       case NSOrderedSame:

           NSLog(@"str1 == str2 ");

           break;

           

       default:

           break;

    }

    

    

}

int main(int argc, const char * argv[]) {

    @autoreleasepool {

       

       NSString *str1 = @"abc";   // a 97

       NSString *str2 = @"abc";   // A 65

       NSString *str3 = [NSString stringWithFormat:@"Abc"];

       

       //地址的比较

       //"==" 不能够判断字符串是否相等的

       

       //判断字符串内容真正是否相等,使用是

       //isEqualToString:

       //注意:他是区分大小写的

       

       if ([str1 isEqualToString:str3]) {

           NSLog(@"相等");

       }else{

           

           NSLog(@"不相等");

       }

       

    }

    return 0;

}



显示日期:

//创建一个日期时间对象

    //获取当前时间

    NSDate *d1 = [NSDate date];

    //0时区时间,北京 东8区

    // 当前时间上+8小时,得到的就是现在时间

    NSLog(@"%@",d1);

    //2015-05-07 09:00:25+0000

    

    //格式化日期

    //NSDateFormatter 日期格式化

    //2015年05月07日 17:00:25

    //2015-05-07 17:00:25

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

    formatter.dateFormat = @"yyyy-MM-ddHH:mm:ss";

    //格式化日期

    NSString *dateStr =[formatter stringFromDate:d1];

    NSLog(@"%@",dateStr);

计算日期

 

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

    formatter.dateFormat = @"yyyy-MM-ddHH:mm:ss";

    

    //计算明天的此刻

    // 距现在时间 24 小时以后,明天的此刻

    NSTimeInterval t = 60*60*24;

    NSDate *tom = [NSDate dateWithTimeIntervalSinceNow:t];

    NSDate *zuotian = [NSDate dateWithTimeIntervalSinceNow:-t];

    //格式化显示时间

    NSString *timeStr =[formatter stringFromDate:zuotian];

    NSLog(@"timeStr = %@",timeStr);

    

    //计算昨天的时间

    NSDate *now = [NSDate date];

    //当前时间-24小时的秒数

    NSDate *zt = [now addTimeInterval:-t];

    timeStr =[formatter stringFromDate:zt];

    NSLog(@"zt = %@",zt);

    

}

int main(int argc, const char * argv[]) {

    @autoreleasepool {

       

       //日期对象

       //2015-05-0717:00:25

       //yearmonth day

       //NSCalendar 日期类,可以帮我们快速的获取年月日 时分秒信息

       NSDate *d = [NSDate date];

  //重点      

       //创建日期的对象

       NSCalendar *cal = [NSCalendar currentCalendar];

       

       //       cal components:获取日期的哪些部分 fromDate:日期对象

       NSDateComponents *coms = [cal components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:d];

       

       NSLog(@"year:%ld,month:%ld,day:%ld",coms.year,coms.month,coms.day);

集合对象内存管理

//创建对象

    Person *p = [Person new];  //1

    [p retain];   //2

    //定义一个数组,并且把p放到数组中

    // 规律1:

    // 只要把对象放到数组中,就发现对象的引用计数+1

    //       NSArray *arr = [NSArray arrayWithObject:p];

    // [[[self alloc] init]autorelease];

    NSMutableArray *marr = [NSMutableArray array];

    [marr addObject:p];

    

    NSLog(@"p.retainCount = %lu",p.retainCount);  //3

    

    [p release];  // 2

    

    // 规律2:

    // 数组在销毁的时候,对对象发送了一次release消息

    

    // 销毁的顺序:数组先挂 --> 数组向其中的对象也发送release

    

    // 结论:

    // 1) 当对象被添加到数组中的时候,对象的引用计数+1

    // 2) 当数组销毁的时候,数组会向它其中的元素发送一次release消息

    // 注意: 数组被销毁了,它里面存储的对象不一定被销毁

}

int main(int argc, const char * argv[]) {

    @autoreleasepool {

       

       //创建对象

       Person *p = [Person new];  //1

       

       NSMutableArray *arr = [[NSMutableArray alloc] init];

       [arr addObject:p];       //2

       //       [arr addObject:p];

       //如果对象从数组中移除了,对象的引用计数会被-1

       [arr removeObject:p];     //-1

       

       NSLog(@"%lu",p.retainCount);

       [arr release];   //1

       

       [p release];  // 1

       //数组被销毁了





 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值